スタティックコントロールでマウスドラッグイベントをトリガーするにはどうすればよいですか?スタティックコントロールでマウスイベントをトリガーする
編集:
は、サブクラス化がどのように動作するか、このですか?次に、ウィンドウクラス(マウスクリックなど)に新しいメッセージを追加するにはどうすればよいですか?
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