![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67b6d)
すみませんが教えてください。
これまで左クリックで画面に文字を表示するときには、何も考えずCxxxViewクラスにWM_LBUTTONDOWNをかいていました。ところがCMainFrameクラスにもちゃんとWN_LBUTTONDOWNが用意されているではないですか。
先ほど教えていただいたばかりの左クリックにてウインドウサイズ変更ができると思い以下のようにしましたが、何も起きませんでした。
どうすれば実現できるのでしょうか?
CMainFrameクラスのWN_LBUTTONDOWNはどのような時に使うのですか?
void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: この位置にメッセージ ハンドラ用のコードを追加するかまたはデフォルトの処理を呼び出してください
AfxGetMainWnd()->SetWindowPos(NULL,100,200,300,400,SWP_SHOWWINDOW);
CFrameWnd::OnLButtonDown(nFlags, point);
}
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上で使う場合は不必要です。
何度も回答有難うございます。
******
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が見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
"I love you" をかっこよく翻訳してみてください
あなたが考えるいちばんかっこいい "I love you"の訳を教えてください。
-
CStringからchar*への型変換について教えてください。
C言語・C++・C#
-
メッセージハンドラ
C言語・C++・C#
-
Debug Assertion Failed?
C言語・C++・C#
-
-
4
エディットボックスの入力制限について
C言語・C++・C#
-
5
CString から LPCTSTRの型に変換
C言語・C++・C#
-
6
メニューをグレー表示でなく非表示にするには?
C言語・C++・C#
-
7
VC++ MFC CFrameWndって・・・
C言語・C++・C#
-
8
ドキュメントクラスの取得方法
C言語・C++・C#
-
9
deleteで開放するとエラーになる原因がわからない
C言語・C++・C#
-
10
デバッグ中のエラーのことで教えてください。
C言語・C++・C#
-
11
VC++から引数付きexeファイルの実行
C言語・C++・C#
-
12
#if 1 #elseの意味について
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
FriendとPublicの違い。。。
-
エディットコントロールのイベ...
-
既定のコンストラクタがない?
-
正規表現 [^/]+ の意味を教えて
-
関数の呼び出し元の検索
-
(UWSC) 「#32770」の意味わかり...
-
ダイアログ表示時にチェックボ...
-
CMainFrameクラスの使い方
-
ダイアログクラスのコントロー...
-
C#で通常のbuttonコントロール...
-
DataGridViewのセルに斜線を引...
-
コンソールアプリでのクリップ...
-
イベントにAddHandlerされてい...
-
privateなメンバ関数をテストす...
-
エディットコントロールでEnter...
-
関数重複の問題
-
C++ protectedにアクセス不可
-
SetTimerの行でアサートエラー...
-
VC++ 7.1 で メインウィンドウ...
-
ポインタのキャストについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
FriendとPublicの違い。。。
-
既定のコンストラクタがない?
-
(UWSC) 「#32770」の意味わかり...
-
クラスのアドレスを引数として...
-
ダイアログ表示時にチェックボ...
-
エディットコントロールでEnter...
-
イベントにAddHandlerされてい...
-
【ASP.NET】 独自で作成したク...
-
DebugクラスとTraceクラスの違い
-
MFCのCListCtrlでスクロールを検出
-
C++ protectedにアクセス不可
-
C++で継承元のクラスの代入演算...
-
継承したクラスを、継承元のク...
-
OnInitDialog()の関数の組み込み方
-
ダイアログクラスのコントロー...
-
MessageBoxを継承したい
-
DataGridViewのセルに斜線を引...
-
このコンパイルエラーの意味に...
-
MFCアプリのコマンドラインでパ...
-
[MFC] CWnd::MessageBoxの警告...
おすすめ情報