10/01/30 09:32:30
WS_CLIPCHILDRENがあるじゃない
839:デフォルトの名無しさん
10/01/30 10:58:56
GetPrivateProfileString
でバッファサイズが足りないと戻り値がnSize-1になるみたいなんですが
切り捨てられたか、文字数がピッタリ一致してただけなのかを区別することはできますか?
840:デフォルトの名無しさん
10/01/30 11:25:45
バッファサイズを1文字余分に取る
841:デフォルトの名無しさん
10/01/30 12:04:29
HWND h;
SHELLEXECUTEINFO sei = { 0 };
sei.cbSize = 60;
sei.nShow = SW_SHOW;
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
sei.lpFile = "notepad.exe";
ShellExecuteEx(&sei);
Sleep(3000);
h = FindWindowEx(sei.hProcess, NULL, TEXT("Edit"), NULL);
SendMessage(h, WM_SETTEXT, 0, (LPARAM)("test"));
ShellExecuteExでメモ帳を起動させて3秒後に"test"を
エディットに表示させたいんだけど
FindWindowExがNULLを返す模様。どうしたらいいの?
842:デフォルトの名無しさん
10/01/30 12:29:07
>>840
あなたは天才ですね!
ありがとうございました!
843:デフォルトの名無しさん
10/01/30 14:18:08
>>841
FindWindowExにメモ帳の「ウィンドウ」ハンドルを渡す。
プロセスハンドル渡しても無意味でんがな。
844:デフォルトの名無しさん
10/01/30 19:14:29
FindWindowExってウィンドウ見つけるんじゃないの?
初めからあるものをどうやって見つけるんだ
845:デフォルトの名無しさん
10/01/30 19:16:37
>>844
お前バカじゃないの?MSDN読んでるか?
HWND FindWindowEx(
HWND hwndParent, // 親ウィンドウのハンドル
HWND hwndChildAfter, // 子ウィンドウのハンドル
LPCTSTR lpszClass, // クラス名
LPCTSTR lpszWindow // ウィンドウ名
);
パラメータ
hwndParent
検索する子ウィンドウの親ウィンドウのハンドルを指定します。
NULL を指定すると、デスクトップウィンドウが親ウインドウとして使われ、デスクトップの子ウィンドウが探されます。
846:デフォルトの名無しさん
10/01/30 19:20:09
プロセスハンドルが分かるのだから
プロセスを作成する
↓
ウィンドウを列挙する
↓
ウィンドウを作成したプロセスIDを取得する
↓
プロセスハンドルとプロセスIDの紐付け
↓
( ^ν^ )
847:デフォルトの名無しさん
10/01/30 19:25:52
顔文字キモイ。
848:デフォルトの名無しさん
10/01/30 20:02:46
νは口なのか鼻なのかはっきりしろ
849:デフォルトの名無しさん
10/01/30 20:14:52
EnumChildWindows の戻り値の説明って間違ってないですか?
850:デフォルトの名無しさん
10/01/30 21:47:30
Win7だと、EnumWindowsと同じような返し方をして来るな。
OSのバージョンによっては妙な値が返してくるやつもあるのか?
851:デフォルトの名無しさん
10/01/30 23:20:52
Vistaでした
852:デフォルトの名無しさん
10/01/30 23:42:02
メインウィンドウのダイアログから CreateDialogParam() で、検索 popup ダイアログを
開いたのですが、キー・バインドなどが働きません。MSDNを見ると、
”To support keyboard navigation and other dialog box functionality,
the message loop for THE DIALOG BOX MUST CALL THE IsDialogMessage() FUNCTION.”
と、あります。キー・バインドが利かないのも、これが原因と思われますが、
メインウィンドウのメッセージ・ループ以外で IsDialogMessage() を実装しろ
という意味なのでしょうか??? ここがよく分かりません。
IsDialogMessage() をどこで、どうやって実装すればよいのか教えてください。
853:デフォルトの名無しさん
10/01/30 23:56:02
FindWindowEx()で、検索対象のウィンドウに、複数のEDITが有り、
検索クラス名がEDITだった場合、一番最初のEDITのハンドルしか取れないけど、
2つめ3つめのEDITのハンドルを取得するにはどうしたらいいのでしょう?
854:デフォルトの名無しさん
10/01/30 23:57:46
hwndChildAfter
子ウィンドウのハンドルを指定します。Z オーダーでこのウィンドウの次にくる子ウィンドウから検索が開始されます。
855:デフォルトの名無しさん
10/01/31 00:05:09
LineTo君に続いて
FindWindowEx君も死ねよ
二度と来るな
856:デフォルトの名無しさん
10/01/31 00:11:18
落ちつけよ。
857:デフォルトの名無しさん
10/01/31 00:13:41
おっかないインターネッツですね
858:デフォルトの名無しさん
10/01/31 05:13:07
>>852
そこは、書いてあるとおりダイアログを処理するメッセージループで。
普通メッセージループなんて1つしかないだろうから、そこでいい。