
似たような質問をこないだ行ったばかりになるのですが、別のアプリから行ったダイアログの表示を検知する方法について質問いたします。
調べたところWindowsからダイアログの表示時にWM_INITDIALOG当たりが投げられるようなのですが、これを取得する方法がわかりません。
環境: WindowsXP+BCB
[ コード ]
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER( WM_INITDIALOG, hogehoge(ここに何を入れればいいのかがわかりません), GetDialog )
END_MESSAGE_MAP( TForm )
ご教授のほどを宜しくお願いいたします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは。
SetWindowsHookEx()で対象アプリをフックすれば出来るかもしれません。
http://msdn.microsoft.com/ja-jp/library/cc430103 …
No.2
- 回答日時:
> VCL_MESSAGE_HANDLER( WM_INITDIALOG, hogehoge(ここに何を入れればいいのかがわかりません), GetDialog )
「TMessage」を入れる。
VCL_MESSAGE_HANDLER( WM_INITDIALOG, TMessage, GetDialog )
って事。で、GetDialogは
void __fastcall TForm1::GetDialog( TMessage& Message )
って感じ。マクロ部分で2つ目の引数に「TMessage」って書くと、3つ目に指定した関数は「引数がTMessage&の関数」になる。
ちなみに「WM_INITDIALOGメッセージは、そのダイアログを作成したアプリケーションにのみ飛ぶ」ので「そのダイアログを作成してない、他のアプリには飛んで来ない」です。
なので「やっても無駄」です。
No.1
- 回答日時:
「WM_INITDIALOG」はダイアログを作成する時に指定したコールバック
関数に送られます(他アプリ等のメッセージキューには入りません)
「FindWindow()APIを使って監視する」が定石だと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
リソースファイルとは・・・
-
'int' から 'LPCSTR' に変換で...
-
VC++ MFC エラーコード C2248 ...
-
Delphi .net ListBoxで上下キ...
-
ダイアログに表示されるアイコ...
-
CWnd::SetCapture()の動作について
-
フォーム上のリストボックスに...
-
コンボボックスのドロップダウ...
-
モードレスダイアログのキー入...
-
ボタンの表示の色、フォントを...
-
メッセージボックスを大きくす...
-
ダイアログのボタンが押せない
-
MFCダイアログボックスを最前面...
-
ダイアログ間のメッセージの送...
-
別のアプリから表示されたダイ...
-
vc++で電卓
-
グラフの交点の求め方(Excel)
-
エクセルで作った新しいウイン...
-
コントロールの書式設定で、“コ...
-
「アイテムは収集されました」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メッセージボックスを大きくす...
-
フォーム上のリストボックスに...
-
ボタンの表示の色、フォントを...
-
ダイアログの上のテキストボッ...
-
リソースファイルとは・・・
-
ボタンの配置を変更したい
-
コンボボックスのドロップダウ...
-
'int' から 'LPCSTR' に変換で...
-
ダイアログボックスで指定した...
-
C# ボタンコントロール内で文字...
-
メッセージボックスのボタン文...
-
ダイアログの一部を半透明化す...
-
vbscriptで、ファイル選択ダイ...
-
【MFC】sleep関数を用いたモー...
-
【VC++2005】ダイアログサイズ...
-
Visual C++のダイアログ編集画...
-
MFCのリストボックスについて
-
エディットボックスの処理で画...
-
ダイアログを自分の好きな位置...
-
MFCダイアログボックスを最前面...
おすすめ情報