http://www.ne.jp/asahi/hishidama/home/t ... ckdlg.html
こちらのサイトで、ボタンのHWNDの取得
というところでこのようなサンプルプログラムが書いてありました。
static BOOL CALLBACK FindSaveButton(
HWND hwnd, // ウィンドウハンドル
LPARAM lParam // アプリケーション定義の値(今回はボタンのHWNDを返す為のポインター)
)
{
TCHAR tbuf[1024];
::GetWindowText(hwnd, tbuf, sizeof(tbuf)); //表示されているテキストを取得
if (lstrcmp(tbuf, _T("保存(&S)")) == 0) {
HWND *ret = reinterpret_cast<HWND*>(lParam);
*ret = hwnd;
return FALSE; //探索終了
}
return TRUE; //探索続行
}
//ダイアログのHWNDから「保存」ボタンのHWNDを取得する
HWND GetSaveButton(HWND hdlg)
{
HWND hbtn = NULL;
::EnumChildWindows(hdlg, FindSaveButton, reinterpret_cast<LPARAM>(&hbtn));
return hbtn;
}
その後の処理がでいまいちわかりません。if文では自分のほしいボタンと比較しているのですか?
その後のreinterpret_castこれは最初にNULLを入れておいたのに何をしているのでしょうか?
*retにHWNDを入れているのもまた意味がわかりません。もともとあったハンドルをそこに入れて、何の意味があるのでしょうか?
後は、SendMessage(ここにボタンのハンドルを入れて,BM_CLICK,0,0)でクリックが可能になるのでしょうか?
色々質問だらけですみません。
順を追いながら説明していただけると、うれしいです。
ご回答よろしくお願いします