정적 컨트롤에서 마우스 끌기 이벤트를 트리거하는 방법은 무엇입니까?정적 컨트롤에서 마우스 이벤트 트리거
편집 :
이 방법 서브 클래스의 작품인가? 그런 다음 어떻게 창 클래스 (마우스 클릭 등)에 새 메시지를 추가 할 수 있습니까?
WNDPROC wpOrigKnobProc;
LRESULT CALLBACK wpKnobProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch (uMsg) {
// So here I can receive custom messages for the control?
}
return CallWindowProc(wpOrigKnobProc, hwnd, uMsg, wParam, lParam);
}
LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
switch (uMsg) {
case WM_CREATE:
{
HWND hctl = CreateWindowEx(0, "STATIC", NULL, SS_CENTERIMAGE | SS_REALSIZEIMAGE | SS_BITMAP | WS_CHILD | WS_VISIBLE, 90, 10, 64, 64, hwnd, (HMENU) KNOB, GetModuleHandle(NULL), 0);
wpOrigKnobProc = (WNDPROC) SetWindowLong(hctl, GWL_WNDPROC, (LONG) wpKnobProc);
}
return 0;
}
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
고마워요!
감사합니다. 하지만 마우스가 정적 컨트롤 (예 : 텍스트 레이블)에 있는지 어떻게 확인할 수 있습니까? – Midas
Erm, 컨트롤에 없으면 마우스 메시지도 표시되지 않습니다. –
메인 윈도우의 아무 곳이나 클릭하면 메시지가 나타납니다. 메시지가 보내는 유일한 매개 변수는 마우스 x 및 y 위치입니다. 현재있는 컨트롤과는 다릅니다. – Midas