掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
EnumWindowsをコマンドボタンでリストアップ (ID:51440)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> hList = CreateWindow(TEXT("LISTBOX"), , , , , , ,hWnd,(HMENU)1,,); > WM_COMMAND > case 1: > SendMessage(hList , LB_RESETCONTENT , 0 , 0); //初期化 > ListUP((LPARAM) hList); //関数呼出し > break; ん? ID : 1はリストボックスですが……。 > リストアップ関数 > void ListUP(LPARAM lParam){ void ListUP(HWND hList){ のように,ウィンドウハンドルを直接渡した方が安全です。 > static HWND hList; > と宣言してあげると > SendMessage(hList, LB_ADDSTRING , 0 , (long)StrWindowBuf[i]); > のようにもできましたが、コントロールのウンドウハンドルを > Static宣言するのは良くはないですよね? 時と場合によりけりです。 場合によっては,staticの方が良い場合もあります。 > また、GetDlgItemを使う場合 > SendMessage((HWND)GetDlgItem(hwnd ,1),LB_ADDSTRING,0,(long)StrWindowBuf[i]); > この場合、リストボックスのIDが1となりますよね? > そこで、ダイアログのハンドルhwndをどうすれば良いのかがわかりませんでした。 > リストボックスが置かれている親ウインドウのハンドルがこれに当たるのでしょうか? え〜っと,MSDNを読みましょう。 http://msdn.microsoft.com/library/en-us/winui/WinUI/WindowsUserInterface/Windowing/DialogBoxes/DialogBoxReference/DialogBoxFunctions/GetDlgItem.asp Remarkの最初に, >You can use the GetDlgItem function with any parent-child window pair, not just with dialog boxes. と書いてあります。 でもって,これは SendDlgItemMessage(hWnd, 1, LB_ADDSTRING, 0, (LPARAM)StrWindowBuf[i]); となります。 > だとすると、これはどのように渡せば良いのでしょうか? 普通に引数として渡せばよいです。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.