CWnd から派生した COpenGLControl クラスがあり、それを自分の目的のためにカスタマイズしているとします。
私はこのようなことをしたい:
1- ダイアログの上部にズーム ツールのツールバー ボタンを追加します。
2-上記のツールバーボタンを押すと、以下で説明する機能が有効になります。
3- ユーザーがマウスの左ボタンをクリックすると、2 倍に拡大され、glTranslate がユーザーのクリック位置に移動します。
4-ユーザーがマウスの右ボタンをクリックすると、0.5 倍に縮小され、glTranslate がユーザーのクリック位置に移動します。
5-ユーザーが別のツールバー ボタンをクリックすると、上記の 2 つの手順で説明した機能が無効になります。
Zoom Tool
のようなものを実装したいことがわかりますGlobal Mapper
。
glScale
orの実装に問題はありませんglTranslate
。
MFC部分に問題があるだけです。
デフォルトのメッセージ ハンドラを検索するとWM_LBUTTONDBLCLK
、WM_LBUTTONDOWN
、WM_LBUTTONUP
、WM_RBUTTONDBLCLK
、がありWM_RBUTTONDOWN
、または? WM_RBUTTONUP
がないことがわかりました。WM_LBUTTONCLK
WM_RBUTTONCLK
WM_LBUTTONCLK
またはがあったとしてもWM_RBUTTONCLK
、これらのイベントハンドラーはウィンドウの作成からウィンドウを閉じるまで有効になり、アクティブになりますが、特定の時間 (ズームツールをクリックした後、別のツールをクリックする前) だけアクティブにする必要が
あります。これらの機能をユーザー定義のメッセージ ハンドラーに実装する必要があるかもしれませんが、MFC は初めてなのでわかりません。
出発点となる本当のアイデアを教えていただけませんか?