2012-02-06 7 views
2

私はビュー内にウィンドウを作成し、そのウィンドウ内にスクロールバーコントロールを作成します。親ウィンドウのSetCapture()後のサブコントロールの応答について

ウィンドウには編集モードがあります。編集モードでは、SetCapture()が呼び出され、すべてのマウスイベントメッセージがウィンドウに送信されます。したがって、そのビューの他のウィンドウは無効になり、編集モードでマウスを操作する機会はありません。

しかし、それは次の問題を引き起こします: - 編集モードでは、スクロールバーのマウス操作は応答しません。親ウィンドウへのSetCapture()のためです。

私はどのようにしてSetCapture()ウィンドウを作ることができますが、サブコントロールはマウスの操作に反応しますか?

答えて

-1

SetCaptureは、WM_*BUTTONDOWNの外部に呼び出さないでください。ドキュメントを読む!

+0

この回答は、ここで説明したMSDNのドキュメントと一致しません。https://msdn.microsoft.com/en-us/library/windows/desktop/ms646262(v=vs.85).aspx ここの例(https://msdn.microsoft.com/en-us/library/windows/desktop/ms645602(v=vs.85).aspx#drawing_lines)で行われているように思えますが、関数を使用する制約。 – morechilli

+0

'SetCapture' APIの目的は、マウスがウィンドウの上にあるかどうかにかかわらず、特定のウィンドウからマウスイベントをキャプチャすることです。制約であるかどうかにかかわらず、 'WM_ * BUTTONDOWN'ハンドラ以外で呼び出された場合、マウスメッセージはキャプチャされません。 MSDNが失われます。私の勝ち。 – l33t

+0

私は異なる行動を観察したと信じています。 – morechilli

関連する問題