Win32API質問箱 Build52

929デフォルトの名無しさん:2007/05/08(火) 23:06:07
じゃあこれから子ウィンドウの事は子供windowって言おうぜwwwwwwwwwwwwwww
930デフォルトの名無しさん:2007/05/08(火) 23:15:53
>>929
んじゃ親ウインドウは、大人ウィンドウかww
931デフォルトの名無しさん:2007/05/08(火) 23:27:21
>>918
WM_DESTROYでも子ウィンドウが生きてることは保証されてるぞ
>>927
エクスプローラーでは一番若いIDのアイコンが表示される
932デフォルトの名無しさん:2007/05/08(火) 23:31:15
何かおばちゃん細胞みたいなノリだな。
933デフォルトの名無しさん:2007/05/08(火) 23:33:25
親ウィンドウが、ダイアログボックスとかを開いている状態で、
親ウィンドウにSendMessageはできるが、
PostMessageができない状態であるか
調べるやり方がありましたら教えてください。
934デフォルトの名無しさん:2007/05/08(火) 23:35:11
EnableWindowでいいんじゃね?
935デフォルトの名無しさん:2007/05/08(火) 23:36:01
IsWindowEnabledだ。
936デフォルトの名無しさん:2007/05/08(火) 23:37:01
>>933
モーダルダイアログ開いててもPostMessage出来るぞ
937デフォルトの名無しさん:2007/05/08(火) 23:55:09
>>931
それで、アイコンが変わらなかったのか・・・
ありがとうございました!無事解決しました。
938デフォルトの名無しさん:2007/05/09(水) 00:12:13
>>937
更新タイミングの自由度は低いがアイコンハンドラを作ればエクスプローラ上での
実行形式ファイルのアイコンも変更可能だぞ。
939933:2007/05/09(水) 00:14:08
>>934-936
ありがとうございます。
IsWindowEnabledでいけそうです。

後、MessageBoxはモーダルダイアログですかね。
第一引数をHWND、NULLどちらの場合でも、
WM_PAINTがメッセージループには来てくれないみたいです。
InvalidateRectをしても直接コールバックの方に来てしまいます。
940デフォルトの名無しさん:2007/05/09(水) 00:44:41
>>939
MessageBoxでは内部でメッセージループが回ってるんだよ
941デフォルトの名無しさん:2007/05/09(水) 00:45:10
UpdateWindowしてないか
942933:2007/05/09(水) 01:03:39
>>940>>941
少し理解できました。
UpdateWindowはしていません。InvalidateRectはしています。
UpdateはSendMessage(WM_PAINT)、InvalはPostMessage(WM_PAINT)
だと思うので、意図したメッセージループに来てほしいのですが、
MessageBox独自のメッセージループに移行してしまうので、
処理が変わってしまう感じですかね。
943デフォルトの名無しさん:2007/05/09(水) 01:23:14
>>942
InvalidateRectは無効領域を追加するだけ。
無効領域があり、かつメッセージキューにメッセージが無くなったときに
システムはWM_PAINTを生成する。
944933:2007/05/09(水) 01:44:32
>>943
なるほど、ありがとうございます。
945デフォルトの名無しさん:2007/05/09(水) 03:11:07
>>47
linux自体Solarisや*BSDから見ればカスなんだが
946デフォルトの名無しさん:2007/05/09(水) 03:23:02
>>945
よう、カス
947デフォルトの名無しさん:2007/05/09(水) 08:01:47
僕バッカー!
948デフォルトの名無しさん:2007/05/09(水) 14:14:25
>>942
そこらへんのメッセージループでもなにか特定の処理を行いたい場合には、
ローカルフックを使うのが簡単。dllもいらないし。
949デフォルトの名無しさん:2007/05/09(水) 16:03:32
アイコン入りのDLLからのアイコン画像を取得する方法を教えてください。
これ
http://ringonoki.net/s-shot/icon/khre.png
みたいに32x32x8のように色とサイズの情報を取得したいです。
950デフォルトの名無しさん:2007/05/09(水) 16:50:08
>>946-947
バッカス
951デフォルトの名無しさん:2007/05/09(水) 17:03:51
952デフォルトの名無しさん:2007/05/10(木) 01:37:55
>>
ありがとうございます。やってみます。
953デフォルトの名無しさん:2007/05/10(木) 04:15:56
>>951
EnumResourceNamesの第1引数に指定するHMODULEはどうやって取得すればよいですか?
LoadLibraryでHMODULEを取得しようとしましたがshell32.dllではエラーになり、
APPWIZ.DLLではLoadLibraryは成功しましたがEnumResourceTypesがTRUEを返しました。
954デフォルトの名無しさん:2007/05/10(木) 07:41:33
ググレカス
955デフォルトの名無しさん:2007/05/10(木) 07:57:30
>>953
> LoadLibraryでHMODULEを取得しようとしましたがshell32.dllではエラーになり、

エラーとは何か?

> APPWIZ.DLLではLoadLibraryは成功しましたがEnumResourceTypesがTRUEを返しました。

TRUEを返すと何か問題が?

956デフォルトの名無しさん:2007/05/10(木) 08:01:56
CreateFile の hTemplateFile って使えないの?
↓のようにやってもtest.txtの属性が、test2.txtにはコピーされないみたい。

HANDLE hFrom = ::CreateFile("c:\\test.txt", GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
HANDLE hTo = ::CreateFile("c:\\test2.txt", GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, hFrom);
::CloseHandle(hFrom);
::CloseHandle(hTo);

>[in] Handle to a template file, with the GENERIC_READ access right. The template file supplies file
>attributes and extended attributes for the file being created. This parameter can be NULL.
最後の一文って一体。。。
957デフォルトの名無しさん:2007/05/10(木) 08:15:28
俺も使ったことないな、最後の引数
958デフォルトの名無しさん:2007/05/10(木) 15:26:38
Explorerの右上の旗のロゴを隠したいのですが、
SetWindowPosやShowWindowで隠そうとしても、枠が残ってしまいます。
専用の関数みたいなものがあるのでしょうか?
959デフォルトの名無しさん:2007/05/10(木) 15:39:27
>>958
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\Explore/ShellBrowser
ITBarLayoutのアドレス0x10のバイトの下位3bit目をオフ
960デフォルトの名無しさん:2007/05/10(木) 15:41:35
下位3bit目じゃなくて下位4bit目だった。ようするに0x08
961デフォルトの名無しさん:2007/05/10(木) 15:54:00
>>960
できました、ありがとうございます。
962デフォルトの名無しさん:2007/05/10(木) 21:42:34
質問です

HTMLのFORMタグでSUBMITすると何も指定していなければ
FORMのACTIONで指定したURL等に
?---=---&___=___と付とついて送信されますよね?

その時日本語が値のときにエンコードされているように見えるのですが、
これはAPIとして提供されている機能でしょうか?

そうであればAPI名を教えてくれませんか?
963デフォルトの名無しさん:2007/05/10(木) 21:43:13
そんなWin32APIはありません。
964デフォルトの名無しさん:2007/05/10(木) 21:50:59
METHOD=GET の話か
まあURLエンコードでググれ
965デフォルトの名無しさん:2007/05/10(木) 22:02:44
IMultiLanguageインターフェイスのConvertStringメソッドとかあるけど、
ここじゃスレ違いかもね
966デフォルトの名無しさん:2007/05/10(木) 22:21:50
BitBltについて質問です。
転送元と転送先が同じDCの場合でも、この関数はちゃんと動く保障はありますか?
967デフォルトの名無しさん:2007/05/10(木) 22:39:33
>>966

厳密にはない。
GetDeviceCaps関数のRASTERCAPSで確認。
968デフォルトの名無しさん:2007/05/10(木) 23:41:11
WINDOWPLACEMENTのshowCmdあたりをいぢってて質問。
最大化してたウィンドウが最小化したあと、元の状態に戻すにはどうすればよいですか?
SW_RESTOREだと最大化状態が解除されてしまうので。
969デフォルトの名無しさん:2007/05/11(金) 00:50:22
Windows Picture and Fax ViewerをCreateProcessで実行したいのですが、
notepad,mspaintのような起動方法は可能でしょうか?
970デフォルトの名無しさん:2007/05/11(金) 01:20:37
関連付けのレジストリを見れば分る
971デフォルトの名無しさん:2007/05/11(金) 01:21:04
時々エディットコントロールのボーダーが見えなくなったり、
エディットコントロールが見えなくなって下のBMP画像が出てきたりするバグで
困っています。これらはWM_PAINTで再描画された時に直るのですが、
むしろ、WM_PAINTで大きなBMP画像が毎回毎回再描画されているせいで
エディットコントロールの表示がおかしくなるのではないかと思ってます。

BMP画像は壁紙としてウィンドウと同じサイズのものを使用しているのですが、
WM_PAINTでことある毎に再描画せずにずっと表示させるようなことは可能なのでしょうか?
972デフォルトの名無しさん:2007/05/11(金) 05:35:42
システムを終了するときの終了オプションダイアログ(コンピューターの電源を切る)のような
完全なシステムモーダルなダイアログボックス、或いはウィンドウってどうやって作ればいいんでしょう?

ダイアログボックスにシステムモーダル属性を付けてもだめでしたorz
タイマーでフォーカスを取り返し続けるっていうのは無しで、なにかいい方法ありますか?
973デフォルトの名無しさん:2007/05/11(金) 06:20:01
HWndにNULLを入れて
974デフォルトの名無しさん:2007/05/11(金) 06:32:30
>>973
無理ですたorz
975デフォルトの名無しさん:2007/05/11(金) 07:24:03
グローバルフックしたら?
976デフォルトの名無しさん:2007/05/11(金) 07:28:52
システムモーダルつけてアド民では?
977デフォルトの名無しさん:2007/05/11(金) 08:06:40
システム乗っ取るようなものじゃないかそれ?
そんなお手軽に実現できていいのかなあ
978972
どうしても乗っ取りたいんです。