윈도에서 API로 그림을 그릴 때Invalidate..() 함수를 사용하여 그려질 좌표를 넘기고
WM_PAINT msg에서 이를 받아서 처리 하게 되는데
만약 여러개의 Invalidate..() 함수를 호출하면 WM_PAINT msg 처리 루틴에서
이번 호출이 어느 Invalidate..() 함수가 호출한 msg인지 어떻게 판단할까?
BeginPaint() 함수의 두번째 인자인 PAINTSTRUCT가 여기에 대한 해답이 될듯하다.
PAINTSTRUCT 구조체의 멤버를 보면 RECT 형이 있는데 이 놈이 Invalidate..() 함수
호출시 넘겨주었던 좌표라고 되어있다.
이 멤버를 가지고 WM_LBUTTONDOWN/WM_LBUTTONUP msg 처리 루틴에서 좌표를
읽듯 parsing을 하면 어떤 Invalidate..()에 대한 WM_PAINT msg 호출인지 가능할듯...
이런걸 진작 가르쳐줬으면 프로그램이 이렇게 어렵게 돌리지 않아도 되는건데..
몰랐다면 모를까 알면서도 안 가르쳐주냐...
된장.. 정말 욕 나온다.
UI 프로그램.. 정말 하기 싫다...
[달린 덧글]
BeginPaint() 함수를 통해 얻어온 PAINTSTRUCT 구조체를 parsing 해서
구한 좌표를 이용하여 그려질 놈이 어디에 무엇인지 파악하는게 좋을 듯..
WM_PAINT msg에서 이를 받아서 처리 하게 되는데
만약 여러개의 Invalidate..() 함수를 호출하면 WM_PAINT msg 처리 루틴에서
이번 호출이 어느 Invalidate..() 함수가 호출한 msg인지 어떻게 판단할까?
BeginPaint() 함수의 두번째 인자인 PAINTSTRUCT가 여기에 대한 해답이 될듯하다.
PAINTSTRUCT 구조체의 멤버를 보면 RECT 형이 있는데 이 놈이 Invalidate..() 함수
호출시 넘겨주었던 좌표라고 되어있다.
이 멤버를 가지고 WM_LBUTTONDOWN/WM_LBUTTONUP msg 처리 루틴에서 좌표를
읽듯 parsing을 하면 어떤 Invalidate..()에 대한 WM_PAINT msg 호출인지 가능할듯...
이런걸 진작 가르쳐줬으면 프로그램이 이렇게 어렵게 돌리지 않아도 되는건데..
몰랐다면 모를까 알면서도 안 가르쳐주냐...
된장.. 정말 욕 나온다.
UI 프로그램.. 정말 하기 싫다...
[달린 덧글]
BeginPaint() 함수를 통해 얻어온 PAINTSTRUCT 구조체를 parsing 해서
구한 좌표를 이용하여 그려질 놈이 어디에 무엇인지 파악하는게 좋을 듯..
'프로그래밍 > 라이브러리' 카테고리의 다른 글
[Win32 API] 네트웍 상태 알기 (0) | 2008.02.06 |
---|---|
[Win32 API] 네트웍 설정.. (0) | 2008.02.06 |
[Win32 API] WCS 과 MBS간의 변환 (0) | 2008.02.06 |
[Win32 API] WM_PAINT msg 처리 (0) | 2008.02.06 |
[Win32 API] WM_PAINT msg를 사용하지 않고.. (0) | 2008.02.06 |
알아서 그려주고 말고를 한다고...
잘 이해는 안되지만 그냥 믿고 그대로 쓰기로 했다.
WM_PAINT msg 처리 루틴에서 화면에 대한 모든 그리는 루틴을 다 넣기로...