掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
EnumWindowsをコマンドボタンでリストアップ (ID:51439)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
YuOさん、いつもお世話になっております。 ウインドウプロシージャにて WM_CREATE //リストボックス作成 hList = CreateWindow(TEXT("LISTBOX"), , , , , , ,hWnd,(HMENU)1,,); WM_COMMAND case 1: SendMessage(hList , LB_RESETCONTENT , 0 , 0); //初期化 ListUP((LPARAM) hList); //関数呼出し break; case 2: //EnumWindowsの呼び出しで //StrWindowBuf[]にウインドウキャプションを取得 break; リストアップ関数 void ListUP(LPARAM lParam){ For(i=0;i++;10){ SendMessage((HWND)lParam , LB_ADDSTRING , 0 , (long)StrWindowBuf[i]); } } のように、見よう見真似てリストボックスのハンドルを渡してあげることでできました。 ただ、コマンドボタンのボタンのクリックに応じてリスト ボックスの再描写はこのような方法で良いのでしょうか? WinMainにおいてCreateWindowでリストボックスを作成して、 コマンドボタンのクリックによってリストボックスの再描写とか できるのでしょうか? static HWND hList; と宣言してあげると SendMessage(hList, LB_ADDSTRING , 0 , (long)StrWindowBuf[i]); のようにもできましたが、コントロールのウンドウハンドルを Static宣言するのは良くはないですよね? また、GetDlgItemを使う場合 SendMessage((HWND)GetDlgItem(hwnd ,1),LB_ADDSTRING,0,(long)StrWindowBuf[i]); この場合、リストボックスのIDが1となりますよね? そこで、ダイアログのハンドルhwndをどうすれば良いのかがわかりませんでした。 リストボックスが置かれている親ウインドウのハンドルがこれに当たるのでしょうか? だとすると、これはどのように渡せば良いのでしょうか? 重ね重ね、宜しくお願いします。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.