CAFE

Windows Programming

C# WinForm - 퍼센트 값이 찍히는 프로그래스바

작성자xozu|작성시간16.11.23|조회수2,312 목록 댓글 0

옆 사무실 사람의 질문을 받고 알게된 내용인데,

놀랍게도 C# WinForm의 프로그래스바 컨트롤은 현재 값을 프로그래스바 위에 표시하는 기능을 위한 속성이 없다!!!

옆 사무실 사람은 별도의 Label을 올려서 시도했으나, 투명배경 등 마음에 들지 않고, 두 개의 컨트롤이 나뉘어 지는 것에 대한 부담.. 등등 하여.. 방법을 찾아보다가 기존 WinSDK나 MFC의 C++에서 하던 윈도우 메시지를 아직도 C# WinForm에서 가로채서 무언가를 할 수 있다는 사실을 알게되었다.


ProgressBar를 상속해서 MyProgressBar 라는 클래스를 정의하고 (서브클래싱)

DefWndProc()를 재정의해서 윈도우 메시지를 가로챌 수 있다. 

WM_PAINT에서 원래 그리는거 다 그린 다음에 직접텍스트를 그리는 코드 추가하면 된다.


다음은 사용법. 아직 컨트롤로 구현하지 않았기 때문에, 코드상에 넣어서 사용 가능함.

ProgressBar 클래스의 Value 속성 대신 서브클래스의 MyValue 속성을 사용하는 것 빼고는 사용법은 동일하다.


다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼