• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CMainFrameクラスの使い方)

CMainFrameクラスの使い方

このQ&Aのポイント
  • CMainFrameクラスを使用する際にはWN_LBUTTONDOWNメッセージを使うことができます。
  • CMainFrameクラスのOnLButtonDown関数をオーバーライドすることで、ウインドウサイズの変更などの処理を追加することができます。
  • OnLButtonDown関数内に追加した処理は、左クリックが行われたときに実行されます。

質問者が選んだベストアンサー

  • ベストアンサー
  • 405
  • ベストアンサー率50% (17/34)
回答No.1

CMainFrameで捕らえられるメッセージはCMainFrameの物だけで、 CMainFrame内にOnLButtonDownを作っても、ViewのWM_LBUTTONDOWNを捕らえる事が出来ないので、何も起きないということになります。 CMainFrameでViewのWM_LBUTTONDOWNを処理したいなら、WM_PARENTNOTIFYを捕まえるのが良いと思います。(自信無しですが) >CMainFrameクラスのWN_LBUTTONDOWNはどのような時に使うのですか? MainFrame上には、色々な子ウィンドウが覆っていますが、これらの隙間(純粋なCMainFrame上の領域)をクリックすれば、WN_LBUTTONDOWNが送られOnLButtonDownが処理されると言う事になります。 (最初の質問で、クライアント領域のサイズが変更できたようですが、その時に空いたスペースをクリックするとWN_LBUTTONDOWNが送られているはずです) ちなみに、AfxGetMainWnd()は、CMainFrameのポインタを取得する為に使ったので、CMainFrame上で使う場合は不必要です。

mk1234
質問者

お礼

何度も回答有難うございます。 ****** CMainFrameで捕らえられるメッセージはCMainFrameの物だけで、 >CMainFrame内にOnLButtonDownを作っても、ViewのWM_LBUTTONDOWNを捕らえる事が出来ないので、何も起きないということになります。 CMainFrameでViewのWM_LBUTTONDOWNを処理したいなら、WM_PARENTNOTIFYを捕まえるのが良いと思います。(自信無しですが) ********** てっきりタイトルバーをクリックすれば動くと思っていました。 ********* CMainFrameクラスのWN_LBUTTONDOWNはどのような時に使うのですか? MainFrame上には、色々な子ウィンドウが覆っていますが、これらの隙間(純粋なCMainFrame上の領域)をクリックすれば、WN_LBUTTONDOWNが送られOnLButtonDownが処理されると言う事になります。 (最初の質問で、クライアント領域のサイズが変更できたようですが、その時に空いたスペースをクリックするとWN_LBUTTONDOWNが送られているはずです) ********** 確かに空いたスペースをクリックすると動きました。 ********** ちなみに、AfxGetMainWnd()は、CMainFrameのポインタを取得する為に使ったので、CMainFrame上で使う場合は不必要です。 ******** 確認できました。

関連するQ&A