[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2chのread.cgiへ]
Update time : 06/18 16:04 / Filesize : 111 KB / Number-of Response : 495
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build64



1 名前:デフォルトの名無しさん [2008/04/02(水) 10:21:31 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-10くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

【前スレ】
Win32API質問箱 Build63
pc11.2ch.net/test/read.cgi/tech/1204600558/


263 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 15:09:55 ]
日付が変わるまで書込み禁止

264 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 15:58:23 ]
>>261
そういうのを、たまたま一致している、というのだよ。


265 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 16:03:07 ]
どんまい

266 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 16:14:45 ]
ける

267 名前:263 mailto:sage [2008/04/08(火) 16:15:30 ]
お前ら1回死ね

268 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 16:25:59 ]
>>255
英語圏では単語の途中で改行されるのを嫌うから、なるべく区切り文字で改行するようになってるんだと思う。

269 名前:229 mailto:sage [2008/04/08(火) 16:30:50 ]
>>232
GetLastErrorでは何も返ってきませんので、
GetDCでエラーが発生しているわけでは無いみたいです。
ただGetDCで返ってきたHDCからHBITMAPを作成しても真っ黒です。
ちなみに通常の状態ですと、
取得したHDCからHBITMAPを作成で正常にキャプチャできています。

270 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 16:49:21 ]
>>264
CRTDLL.DLLやMSVCRT.DLLにあわせるためであり必然です

271 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 16:57:20 ]
もうXPに帰りたい…
実行に管理者権限が必要かどうかぐらい書いとけカス



272 名前:デフォルトの名無しさん [2008/04/08(火) 17:16:45 ]
帰ればいいだろ
わざわざVista使ってストレス溜めて何の得になるんだ?

273 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 17:44:09 ]
俺ビスタだぜ?
お前XPなの?
m9(^Д^)プギャーーーッ
ってしたいため

274 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 17:45:26 ]
XPなら何に管理者権限が必要かどうか区別する必要が無いなんて事は全く無いが

275 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 17:49:40 ]
必要があるってことは無いが無いってことも無い事は無いか必要ってこともあることは無い

276 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 17:50:26 ]
>>270
合わせる必要なんかないだろ。

ていうか、gccはGNUのC標準ライブラリを使うんじゃないか?
MSVCRT.DLLを使うのは行儀が悪すぎる。

277 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 17:52:05 ]
VistaってUser/PowerUser権限をWindows2000見たいな感じで使うこと出来ないの?

278 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 17:55:39 ]
はい

279 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 17:57:36 ]
そりゃ悲惨だね・・

280 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:07:37 ]
はい

281 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:14:29 ]
>>276
MinGWinはデフォルトでMSVCRT.DLLを使うよ



282 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:16:50 ]
>>281
知ったか乙

283 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:22:59 ]
>>282

284 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 18:26:39 ]
>>277
2000みたいな感じってのがよくわからないが、グループや特権の割り当ては2000と同じようにできるよ
Administratorsが必要なときに自動的にrunasみたいなダイアログが出るところは2000と違う

285 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:10:45 ]
>>276
W系APIが16ビット前提なんだから、合わせるのは当然でしょ。
gccでデフォルトで glibc を使うプラットフォームはむしろ少数派。


286 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:32:42 ]
UACなんて無効でおk

287 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:41:12 ]
つまりUser権限で常用して必要なときはRunasってな使い方がVistaでも出来るって事?

288 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 19:53:17 ]
>>287
出来る。

289 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 21:55:13 ]
Win32 API を使う漏れらがちゃんと気を付けて、たとえば無暗にHKLMとかHKCRに
もの書いたりしないようにしてゆけば、>>287みたいな使い方もどんどん楽になってゆくよね
・・・・無理だけどさ。

サービスなんかやめて setuid ビット採用してよ >> Windows

290 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 22:30:41 ]
runasでバッチ作るくらいで勘弁してあげたらw

291 名前:デフォルトの名無しさん mailto:sage [2008/04/08(火) 23:24:31 ]
>>249
MSDNネット版、やたら重いよね。Webのデザインが変わってから重くなったイメージ。
勘弁してほしいよな。



292 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 03:21:02 ]
>>285
合わせるのが合理的ではあるが、絶対に合せなければならないというわけではないぞ。

293 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 03:21:50 ]
>>291
MSDNライブラリくらいローカルにインストールしろって。
オンライン版よりも少し内容が古くなるったって、それが問題になるような仕事してんのか?

294 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 07:32:28 ]
>>291
おれは今のMSDNのほうが使いやすいな
あとは検索の糞っぷりと左ペインの使いづらさをどうにかしてほしい

295 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 09:34:38 ]
>>292
Windows SDKを検索すれば状況が理解できると思うよ

296 名前:デフォルトの名無しさん [2008/04/09(水) 10:25:02 ]
知らないならレスしないでください

297 名前:デフォルトの名無しさん [2008/04/09(水) 10:28:10 ]
もしかしてスレ違いかもしれませんが…

エクセルビューアのウィンドウクラス名はなんですか?
どなたか教えてください(>_<)

298 名前:デフォルトの名無しさん [2008/04/09(水) 10:33:46 ]
>>297
エクセルビューアが何なのか知らないけど、それを持ってるなら
起動してspy++で見ればわかるよ。

299 名前:デフォルトの名無しさん [2008/04/09(水) 11:14:48 ]
>298
調べることができました!
ありがとうございます!

300 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 16:02:11 ]
>>183
WM_DROPFILESはPost側で確保してGet側で解放する仕様なので作ってPostMessageしたらそれで終わり
もちろん(まずないはずだが)PostMessageが失敗したときには自前でGlobalFreeすること

301 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 16:08:32 ]
>>300
>>187で既出
それとも二日間調べつづけて漸く結論を導き出せた>>184君か?w



302 名前:デフォルトの名無しさん [2008/04/09(水) 16:12:59 ]
お前らそんなに>>184を責めるなよ!
どうせお前らも同じく無知なんだから

303 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 16:22:08 ]
×お前ら
○俺ら

304 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 16:24:26 ]
×俺ら
○俺

305 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 16:45:07 ]
>>304だけ無知って事でいいじゃん

306 名前:デフォルトの名無しさん [2008/04/09(水) 17:30:44 ]
>>184=>>302=>>305=無知だろJK

307 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 17:38:25 ]
ビットマップの特定の色を透過させるにはどうしたらいいでしょうか。

308 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 17:40:50 ]
TransparentBlt

309 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 17:44:51 ]
TransparentBlt

310 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 17:45:29 ]
>>304>>306
わかりやすすぎwwwwwwwwwwwwww

311 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 17:56:39 ]
最も最近作られた子ウィンドウを取得する方法ってないかな?



312 名前:311 mailto:sage [2008/04/09(水) 17:57:03 ]
「最も最近」って何だよ俺 orz

313 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 18:03:30 ]
×俺
○俺ら

314 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 18:09:14 ]
×俺ら
○お前ら

315 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 18:17:56 ]
ダイゴロー

316 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 18:20:39 ]
GetYoungestChildWindow

317 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 18:21:47 ]
>>316
できました!
ありがとうございます。

318 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 18:47:26 ]
どういたしまして

319 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 18:52:35 ]
Youngestって何だよw
せめてLatestぐらいにしとけ

320 名前:311 mailto:sage [2008/04/09(水) 19:03:44 ]
本当お前ら面白いなw
諦めたほうがよさそうだ。別の方法を探ります

321 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 19:10:25 ]
もう春休みは終わったはずなのに何というカオス・・・



322 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 19:31:12 ]
I am NEET!

323 名前:デフォルトの名無しさん [2008/04/09(水) 19:41:16 ]
>>320
GetWindowLongで我慢しろブタ野郎!

324 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 19:45:52 ]
は?

325 名前:デフォルトの名無しさん [2008/04/09(水) 20:11:42 ]
WM_PAINT メッセージを発行する Win32APIって何だったでしょうか?

326 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 20:13:23 ]
UpdateWindow

327 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 20:13:51 ]
>>326
thx

328 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 20:14:51 ]
InvalidateRectじゃなくて?

329 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 20:17:53 ]
漏れは GetMessage だと思うんだ

330 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 20:18:17 ]
Win32APIなんぞ久しいが
InvalidateRectは領域を無効化することで再描画させると記憶してる

331 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 20:27:21 ]
GetMessageじゃなくSendMessageとかPostMessageではなくて?



332 名前:デフォルトの名無しさん [2008/04/09(水) 20:29:22 ]
知らないならレスしないでください

333 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 20:47:59 ]
議題:なぜこのスレはゆとりほいほいになったのか

334 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 20:57:44 ]
知らないならレスしないでください
という言葉を無敵だと思ってるから

335 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 21:17:08 ]
GetMessageを呼びだしたスレッドに属するウィンドウに無効領域があり、
他にウィンドウメッセージが無ければ、その時点でWM_PAINTが生成される。

336 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 21:23:07 ]
>>331
ウィンドウメッセージのキューは単純なFIFOではないのよ。

わかりやすいのはWM_TIMERかな。
たとえば100msec毎にWM_TIMERが送られてくるようにして、
わざとメッセージポンプを数秒間止めてみて、再開後にどうなるのか、
ちょろっとプログラムかいて試してみ。

WM_PAINTも同様。

337 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 21:56:37 ]
>>311
なかなか面白そうな質問なんで調べてみたがなかなか無いな。
フック使えば出来るが個人的にフック嫌いだしなー。

338 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 22:21:59 ]
>>337
意外だな
このスレはフック大好き人間だらけなのに

ま、解決策をすぐフックに持っていく短絡思考な回答者は嫌いだが

339 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 22:29:50 ]
フック大好きなのは質問者という事実

340 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 22:39:20 ]
好き好きフック船長!!!

341 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 22:57:24 ]
質問者以外もフック大好きだろ
>>48とか>>80-81とか

個人的に次々々バージョンぐらいのWindowsからSetWindowsHookEx/CreateRemoteThreadとかは
Vistaの64-bitドライバみたいに未署名モジュールは使えなくすればいいと思っていたりする



342 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 23:02:48 ]
>>341
そんなことになったら、自作ヘボソフト介助ツールが使えなくなるじゃないか!
世の中にはいいソフトなのにフロントエンドが腐ってる物が多いんだぞ

343 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 23:12:41 ]
>>338
Winのフックってシステム的に美しくないじゃん。

フックを使ったら負けだと思ってる (大学生 21歳 嘘)

344 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 23:20:54 ]
フックでウインドーズをファックするわけよ。

345 名前:デフォルトの名無しさん mailto:sage [2008/04/09(水) 23:37:16 ]
>>342
他プロセスに簡単に介入できる現状の方が問題だろ

どうしても自作ソフトでフックが必要なら、デジタル署名を取得するか
自分しか使わないならレジストリ設定や起動オプションなんかで無効化してしまうか
仮想PCで飼えばいい訳でだな

それに次々々バージョンなんてあと10年ぐらい先の話だろう

346 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 10:42:22 ]
case WM_NOTIFY:
lpSChange = (LPNMSELCHANGE)lp;
if((lpSChange->nmhdr).hwndFrom != hMon ||
(lpSChange->nmhdr).code != MCN_SELCHANGE)
return FALSE;
MonthCal_GetCurSel(hMon, &st);
wsprintf(szBuf, _T("%d年 %02d月 %02d日の予定"), st.wYear, st.wMonth, st.wDay);
SetWindowText(hStatic, szBuf);
wsprintf(szApp, _T("%d-%02d-%02d"), st.wYear ,st.wMonth, st.wDay);
MyShowPlan(hEdit, szApp);
SetFocus(hEdit[0]);
}
return FALSE;
}

猫でもわかるの本で勉強しているんですが
(lpSChange->nmhdr).hwndFrom

この->の意味がいまいち良くわからないんです。
検索しても解説しているのが見つからないので質問させていただきました。
誰か御教授頂けると嬉しいです(><)

347 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 10:46:01 ]
>>346
まずはその本を窓から投げ捨てた上で油をかけて燃やせ。
話はそれからだ。

あとスレ違い。
operator ->()は構造体へのポインタから構造体のメンバにアクセスするための演算子。

348 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 10:50:22 ]
>>347
放火犯で捕まるのは嫌です

349 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 10:50:48 ]
不法投棄の上に放火

350 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 11:00:09 ]
>>347
バージョンの誤差さえ何とかすれば結構いい本だと思ってたんですが、、ダメなんでしょうか(´・ω・`)
->のこと大体把握できました、ありがとうございます。
そしてスレ違いすいませんでした。

351 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 13:38:30 ]
>>350
ちゃんと理解していなくて、なんとなく動いているプログラムを量産する、
いないほうがマシなプログラマを育成するタイプの本だな。

もちろん、作者の人の行為自体は馬鹿にできないが。



352 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 13:40:07 ]
APIリファレンスとしてはいいと思う

353 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 13:47:20 ]
英語版MSDNでも読めばいいじゃない

354 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 13:50:11 ]
いや、馬鹿にできるよ。
猫のせいでどれだけ糞コードが世に出回ったと思っているんだ。

355 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 13:51:46 ]
猫はやりたいことに必要なAPIとかググるキーワードを見つけるために
使うんだったら分からなくもない
コード自体はどうしようもないほどに糞

356 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 14:32:25 ]
てか->はC言語の問題でAPI使ってどうこう以前の問題

357 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 14:33:34 ]
10年ぐらい前はGoogleなんて無かったしWin32APIの日本語での情報も少なかったから多少は役に立ったとかそんなとこだろ
今となっては正直無くてもいいと思う

まあ最近は適当に検索すると.NETばっかり出てきて鬱になるがw

358 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 14:54:45 ]
この辺で話題を変えておこうか

359 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 14:58:50 ]
XPスタイルのタブコントロール上のトラックバーコントロールの背景色をきちんと描画するにはどうしたらいいんでしょうか?
EnableThemeDialogTextureを適用したダイアログに乗せる方法だと、
そもそもダイアログの背景にグラデーションがかからないのでダメでした。
トラックバーコントロールのWM_CTLCOLORSTATICで、DrawThemeParentBackgroundを呼び出す方法だと。
ウインドウが隠れてから復帰するときにトラックバーコントロールが消えてしまいダメでした。

もう完全に詰まってしまった感じなのですが、トラックバーコントロールを独自実装する以外で何か良い方法はないでしょうか?

360 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 15:12:37 ]
DrawThemeParentBackgroundを呼び出す方法で、
ウインドウから隠れて復帰するときだけデフォルトウインドウプロシージャを呼び出すようにすれば、
一応きちんと描画されるのですが、判定が難しく、あまり確実な方法ではないので、他の方法はないでしょうか。

361 名前:359-360 mailto:sage [2008/04/10(木) 16:23:32 ]
激しく泥臭い方法だけど一応できたっぽいかもしれません。

>>360の方法をどうにか詰めて、
WM_CTLCOLORSTATICが呼ばれる前にWM_ERASEBKGNDが1回呼ばれた時は、
タスク切り替えでウインドウが隠れてから復帰なので、
このときにデフォルトウインドウプロシージャを呼び出さないと、
トラックバーコントロールが消えてしまうので、
デフォルトウインドウプロシージャを呼び出す。

WM_CTLCOLORSTATICが呼ばれる前にWM_ERASEBKGNDが2回呼ばれた時は、
タスクの最小化から復帰したときで、
このときはDrawThemeParentBackgroundを呼び出さないと、
背景がおかしくなるのでDrawThemeParentBackgroundを呼び出す。

としたら、どうにかできました。
ただ、このやり方はあまりにも泥臭く、不確実な感じがするので、
引き続き、他の方法がありましたらよろしくお願いします。



362 名前:デフォルトの名無しさん mailto:sage [2008/04/10(木) 18:24:22 ]
カスタムドローで全部描いちゃえ

363 名前:デフォルトの名無しさん [2008/04/10(木) 18:30:36 ]
いやオナニードローだ!






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<111KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef