- MFC相談室 mfc22d.dll
847 :デフォルトの名無しさん[sage]:2015/10/02(金) 15:37:52.90 ID:gVV2SMTn - ソースコード上で、MFCのクラスのメンバ関数を右クリックして表示されるメニューから「定義へ移動」を選択すると
昔は、MFCのソースコードが記述されている.cppファイルが開いて、その関数の実装が確認できました しかし、今は、クラスのメンバ関数定義の.hファイルしか開きません .cppファイルが開くように設定する方法とかがあったりするんでしょうか?
|
- Visual Studio 2015 Part3©2ch.net
34 :デフォルトの名無しさん[sage]:2015/10/02(金) 15:48:27.15 ID:gVV2SMTn - すみません、ちょっと教えてもらいたいんですけど
ステータスバーがウィンドウメッセージを処理してる流れを確認したくて Spy++でステータスバーのウィンドウを設定したんですけど SB_SETTEXTなどのステータスバーメッセージを確認できませんでした 親ウィンドウをスパイしてみてもだめでした なぜでしょうか?宜しくお願いします
|
- Visual Studio 2015 Part3©2ch.net
37 :デフォルトの名無しさん[sage]:2015/10/02(金) 17:59:58.75 ID:gVV2SMTn - >>36
ご回答ありがとうございます Spy++に32/64の違いがあることは知りませんが、WM_系のメッセージは取得できること、 TB_やTVM_やLVM_などの他のコントロールのメッセージは取得できることから 原因は、そこに無いような気がします
|
- MFC相談室 mfc22d.dll
849 :デフォルトの名無しさん[sage]:2015/10/02(金) 18:04:37.50 ID:gVV2SMTn - >>848
大昔の話しですみません、VC6.0のときはできて、VS2002かVS2005あたりで できなくなったと記憶しています
|
- Visual Studio 2015 Part3©2ch.net
39 :デフォルトの名無しさん[sage]:2015/10/02(金) 19:31:31.14 ID:gVV2SMTn - >>38
ご回答ありがとうございます 「StatisStrip」なるものが何であるのか存じ上げませんが、ここでのステータスバーとは 「msctls_statusbar32」win32コモンコントロールのことであります 繰り返しになって恐縮ですが、Spy++でメッセージを取り出すと、WM_PAINTやWM_NCHITTESTなどといった 通常のウィンドウメッセージは確認することができますが、ステータスバーを操作するためのメッセージである SB_系のメッセージのみ確認することができずに困っています
|
- Visual Studio 2015 Part3©2ch.net
41 :デフォルトの名無しさん[sage]:2015/10/02(金) 20:13:10.43 ID:gVV2SMTn - >>40
ご回答ありがとうございます Spy++のメニューから「スパイ」-「プロセス」でプロセス一覧を表示させましたが、 ここに一覧されるのはウィンドウのないプロセスに限るようで自アプリ宛ての全メッセージを監視する方法は分かりませんでした >ステータスバーのテキスト更新が別の手法で行われている それは無いと思います 例えば、ペイントを起動して描画領域でマウスカーソルを移動させると、ステータスバーには座標がリアルタイムに表示されます このときSpy++で監視すると、ステータスバーにはWM_PAINTとWM_ERASEBKGNDメッセージしか飛んできません ステータスバーに、マウスの座標を描画しているわけですから当然です しかし、このWM_PAINTメッセージはは、何をきっかけに発生したのか考えると、 プログラムがステータスバーに対してSB_SETTEXTメッセージを送って、ステータスバーに文字列を渡したからです ですから、別の手法で更新ということはありえません そこで、その、SB_SETTEXTをSpy++で確認できないのは何故なのかというのが疑問なわけなのです
|
- Visual Studio 2015 Part3©2ch.net
43 :デフォルトの名無しさん[sage]:2015/10/02(金) 21:07:01.54 ID:gVV2SMTn - >>42
質問する立場なので、無知は自覚しております 「有り得ない」理由を説明させてもらっているわけですから、 その発言を否定するのならば、説明を翻す反論をすればどうでしょうか? 他人の発言を、無知や低脳といった捨て台詞で切り捨てるのは、 大抵の場合、相手の言ってることが正しくて、理屈では言い返すことができない場合と相場が決まっています 人に勉強しなおせと大口を叩いている人物が、 低脳で無知な人間の質問に答えるだけの知識を持ち合わせていないということだけは理解しました
|
- Visual Studio 2015 Part3©2ch.net
48 :デフォルトの名無しさん[sage]:2015/10/02(金) 22:11:32.02 ID:gVV2SMTn - >>44
それで反論したつもりですか? >おまえが書いたのはテキストを渡す方法のひとつだろ? ひとつも何も、プログラムがステータスバーにテキストを渡す方法はこれしかありません もしかして、ステータスバーの話しだということを失念してませんか? >「描画」についてはまったく書いてない それで反論したつもりですか? 指摘がまったく見当違いで気が遠くなりそうなんですけど… 描画の話しなど、ステータスバー固有のメッセージがSpy++で取り出せないという話しと何の関係もないじゃないですか >>41は描画に触れたわけではなく、メッセージがWM_PAINTとERASEしか来ないですねっていう Spy++の検証結果を報告したもので、話しの趣旨とはまったく関係ないですよ 断定的な発言が気に障ったようですけど、結局、その断定的な発言が正しかったと言ってくれてるようなもんですよね 何でもかんでも噛み付いたらいいってもんじゃないですよ
|
- Visual Studio 2015 Part3©2ch.net
49 :デフォルトの名無しさん[sage]:2015/10/02(金) 22:20:47.11 ID:gVV2SMTn - >>47
やっと、まともな発言してくれる人が出てきてくれました >HDCを取得してGDI関数を呼び出すだけでできる >メッセージハンドリングはアプリ側では必須ではない もちろんです しかしながら、手当たり次第に、色んなアプリケーションのステータスバーを Spy++で確認しても、結局、SB_系のメッセージを取得できるアプリがいまのところ無いんですよ HDCを取得して直接描画するっていうのが、Windowsプログラムのスタンダードというのは無理がありますよね ちなみに、VCのMFCのソースコードを確認すると、ステータスバーに文字を描画する手法は、 きっちりSB系のメッセージが使われています afxcmn.inl CStatusBarCtrl::SetText(LPCTSTR lpszText, int nPane, int nType) { return (BOOL) ::SendMessage(m_hWnd, SB_SETTEXT, (nPane|nType), (LPARAM)lpszText); }
|
- Visual Studio 2015 Part3©2ch.net
52 :デフォルトの名無しさん[sage]:2015/10/02(金) 22:39:21.47 ID:gVV2SMTn - >>50
自分の意見がごり押しだったことに気がついたからって、今更スレチもないでしょ あなたのお陰で、いま、ふっと気がついたんですけど、>>44が言ってる >分かるやつは「WM_PAINTとWM_ERASEBKGNDしか来ない」という部分で理解してるよ って、言葉の意味は、 「プログラムがHDCを取得して強制描画する手法を使ってるってことを理解してる」ってことでしょうか? もし、そうだとすれば、チンパンジーレベルの知能しか無いってことを 露呈したようなもんなんですけど大丈夫でしょうか? 念のために、チンパンジーにも分かるように説明しておくと、 ステータスバーでWM_PAINTとWM_ERASEBKGNDが発生するということは、 プログラムでHDCを取得して強制描画した内容が消えるということですよ? 「いや、ステータスバーが描画するための文字列を取りに行くから」って反論しますか? ステータスバーは、自分から文字列を取得しに行く動作を行いません もし取りに行くなら、どこに格納されているんですか?教えてください 「いや、描画メッセージが終わったことを確認してから上書き描画してるんだよ」って反論しますか? SB_SETTEXTメッセージを送るだけでステータスバーに描画できるのに そんな面倒くさいプログラミングを誰がするんですか?馬鹿ですか?
|
- Visual Studio 2015 Part3©2ch.net
53 :デフォルトの名無しさん[sage]:2015/10/02(金) 22:45:05.11 ID:gVV2SMTn - >>51
>>52の内容を理解できますでしょうか? 無知を晒す恥ずかしさに気がついたのは、あなたの方でしたね
|
- Visual Studio 2015 Part3©2ch.net
56 :デフォルトの名無しさん[sage]:2015/10/02(金) 22:54:28.39 ID:gVV2SMTn - >>55
はい、おっしゃるとおりです しかし、そのようなアプリは稀有ですよね そのお話では、>>49にも書きましたが、手当たり次第に色んなアプリのステータスバーを確認しても ステータスバー固有のメッセージを確認できなかったという事実を覆せませんよね
|
- Visual Studio 2015 Part3©2ch.net
61 :デフォルトの名無しさん[sage]:2015/10/02(金) 23:39:39.11 ID:gVV2SMTn - >>57
検証ありがとうございます。確認できました となると、それはそれで疑問がわいてきますが、 ステータスバー固有のメッセージが取れるアプリを教えてくださって ありがとうございました >>58 あんた、そこそこデキる人なんだから 自分の値打ちを下げるようなことは言わないほうがいい 負け惜しみが酷すぎる http://www.dotup.org/uploda/www.dotup.org542099.jpg
|