プロシージャ間のSendMessage()について – プログラミング – Home

プロシージャ間のSendMessage...
 
通知
すべてクリア

[解決済] プロシージャ間のSendMessage()について


TERA
 TERA
(@TERA)
ゲスト
結合: 18年前
投稿: 24
Topic starter  

開発環境 WindowsXP  VS2005  PlatformSDK  C言語

LRESULT CALLBACK MainDlgProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM
lParam)
{

case IDM_NAME :
DialogBox(g_hInst,MAKEINTRESOURCE(IDD_NAME), NULL, (DLGPROC)
NameDlgProc);
return TRUE;

}

LRESULT CALLBACK NameDlgProc (HWND hWndName, UINT message, WPARAM wParam,
LPARAM lParam)
{

~~~~

SendMessage(  ※ , WM_USER+1, 0, 0);

~~~~

return FALES;
}

NameDlgProcプロシージャから MainDlgProcプロシージャに自作メッセージを
送りたいのですが、SendMessage()の第一引数にhWndとすることもできず、困っていま
す。
こういう場合は、hWndをグローバル変数にコピーして使うのが正しいやり方なのでしょう
か。
でもそれはなんだかスマートではない気がするのですが・・・。


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

WPARAM, LPARAM を介して送ればいいんじゃないかと。


返信引用
TERA
 TERA
(@TERA)
ゲスト
結合: 18年前
投稿: 24
Topic starter  

επιστημηさん

ええと・・すみません。
それはいったい、どういうことでしょうか。


返信引用
Blue
 Blue
(@Blue)
ゲスト
結合: 20年前
投稿: 1467
 

> DialogBox(g_hInst,MAKEINTRESOURCE(IDD_NAME), NULL, (DLGPROC)NameDlgProc);
DialogBox関数の第3引数は親ウィンドウを指定するようにできます。

で、ダイアログプロシージャ内で、GetParent関数を呼べば、親ウィンドウのハンドルが
取得できるはずです。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

あ、そーゆーことか。ごめん勘違い。


返信引用
TERA
 TERA
(@TERA)
ゲスト
結合: 18年前
投稿: 24
Topic starter  

επιστημηさん Blueさん

できました!
なるほど・・・こういうことができたのですね。

お二人ともどうもありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました