- 1 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 03:44:55 ]
- スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。 過去スレ、関連リンクは>>2-5くらい。 ■注意 ・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。 ・日本語版MSDN Online Libraryは不完全です。英語版(msdn.microsoft.com/library/)の利用推奨。 ・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。 ・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
- 449 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 12:30:27 ]
- 猫のWin32は言っちゃ悪いけどひどいコーディングしてると思う
メニューのとこ見たら右クリックごとにメニューの生成と破棄繰り返してたよ。
- 450 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 12:36:43 ]
- オブジェクト指向的でいいじゃん
- 451 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 12:37:27 ]
- >>449
そうですか・・・ 本を買う金がないので、400章まであるサンプルを一つ一つ手打ちで勉強してるんですが、 ところどころ非効率なコードが書いてあるということですね。注意して読みます。 ありがとうございました。
- 452 名前:デフォルトの名無しさん [2007/04/02(月) 12:38:09 ]
- 方法論を学ぶ所であってコードを学ぶ所ではないと意識しておけばおk
- 453 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 13:25:27 ]
- 効率に限らず、独学の初心者的な泥臭いコードが多い
あれは教科書ではなくノートだと考えろ 丸写しすると他人の変な癖まで取り込むことになる
- 454 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 13:31:01 ]
- 反面教師なんだよ。
- 455 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 13:36:47 ]
- ついでに思うのは果たして400章までやる必要があるかどうか?
応用って言葉の意味が無いよな
- 456 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 13:39:28 ]
- 必要な動作を追うには、再利用性を考えて効率的に使えるように書かれたコードよりも見やすい。
STLやboostのコードを逐次追うような状態を想像してみると分かりやすいだろう。
- 457 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 14:14:27 ]
- まぁでもなーーーーんもわかんない人にはわかりやすいとは思う。
俺も猫からプログラミング入ったクチだし。数年前の話だけど。
- 458 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 15:21:10 ]
- 猫は雰囲気だけ掴んで詳細はMSDNって感じだな。
- 459 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 16:20:28 ]
- 猫とMSDNの間に差ありすぎだろ
- 460 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 17:18:33 ]
- 猫を含めたWEBサイトだけで窓プログラミングを覚えた
(正確にはMFCの本を1冊だけ買ったけど)俺でも 猫のコードを「あまり良くない」と思えるぐらいには成長した 結局>>452と>>456だと思う
- 461 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 17:41:54 ]
- 猫はほとんど見ないで解説サイトだけで勉強したけど
猫のコードが何故よくないのかわからない俺もいますよ まだまだ勉強不足ってことだろうか・・・
- 462 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 18:13:38 ]
- 猫のコードは普通に醜いし
処理過程も追いにくいと思うぞ 窓初心者ならこっちのほうがお勧め ttp://wisdom.sakura.ne.jp/system/winapi/index.html トピック毎のサンプルが短いから C言語の知識なくても解説見て丸写ししてるうちに分かるはず ちょっとバグってる所もあるけど猫ほどじゃないし
- 463 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 18:22:46 ]
- 後学のために質問なんだけど、
GDI+とか他のライブラリ使わないで、 PNGの画像ファイルをDCに描画する方法って、 どうやればいいのか、解説してるところあったら教えてほしい。
- 464 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 18:30:43 ]
- libpngでテンポラリメモリ上に展開したのち、SetDIBitsToDeviceとか
DIBSectionのメモリ上に展開してBitBltとか。 OleLoadPictureしてRenderとか。
- 465 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 18:37:11 ]
- windowを必要としないソフトでメッセージだけを受け取られますか?
- 466 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 18:37:59 ]
- 投げる側がPostThreadMessage使うなら、ウインドウは要らない。
- 467 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 18:41:35 ]
- libpngが既に外部ライブラリだと思うんだけど
そういうことでなくて?
- 468 名前:デフォルトの名無しさん [2007/04/02(月) 18:42:51 ]
- >>465
エスパー回答するとシステムトレイ上のアイコンからWM_COMMANDを投げたりできる でもこれは厳密にはWindowを作ってることと一緒
- 469 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 19:15:47 ]
- >windowを必要としないソフトでメッセージだけを受け取られますか?
Windowを作らずに、Windowメッセージだけを取れるか?という意味? 例えばタイマーとか
- 470 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 19:46:29 ]
- >>463
www.w3.org/TR/PNG/ ここに詳しく書いてある。 ライブラリを使うのが嫌なら自前で実装しろ。 >>465 必用としなくても見えないウインドウを生成すればいいだけ。 知恵が足りない。
- 471 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 20:05:02 ]
- ダイアログに文字を表示する方法でリソースに
LTEXT "hogehoge/,IDC_HTML,10,10,100,18 と書けば表示されるのですが、ということは、SetDlgItemTextは なんのために存在するのでしょうか??
- 472 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 20:05:34 ]
- "が抜けていました
LTEXT "hogehoge/",IDC_HTML,10,10,100,18です
- 473 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 20:08:42 ]
- 他のコントロールを変更するときに使う。
もちろん、LTEXTも変更できるので、位置だけ取って、あとから必要に応じて書いたり
- 474 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 20:08:53 ]
- 何でもかんでも静的に決まると思ったら大間違いだ
- 475 名前:デフォルトの名無しさん [2007/04/02(月) 20:10:20 ]
- 俺はlibpngとlibjpegとlibtiffを使って相互にフォーマット変換できるクラスを作った。
もちろん、DIBに変換できるのは言うまでもない。 いや、ただそれだけなんだけど。
- 476 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 20:13:35 ]
- >>473
他のコントロールを変更するとは、どういう意味なんでしょ??
- 477 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 20:15:12 ]
- ボタンならボタンに表示されてる文字列が変わる。
というかSetDlgItemTextを何だと思ってたんだ。
- 478 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 21:39:45 ]
- 動的に変えたい場合
- 479 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 21:51:29 ]
- 逆に考えるんだ
OSもダイアログテンプレートのLTEXTの文字列を読んで SetDlgItemTextを呼び出してるのだと
- 480 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 22:35:56 ]
- >>470 thx. やってみる。
- 481 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 22:52:25 ]
- CreateDialogを使用してダイアログを表示したいのですが戻り値がNULL、GetLastErrorの値が1812
になり表示できません。 ボタンを押したときに表示したいのでメッセージループに下のように埋め込んでいるのですが。 (ShowWindowとUpdateWindowは省略しています) case WM_COMMAND: hDlgWnd =(ghInst, MAKEINTRESOURCE(IDD_DIALOG1), ghWndKihon, (DLGPROC)MyDlgProc); なにか、こうじゃないの?的な物でもいいのでヒントください。
- 482 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 22:54:46 ]
- 肝心の「CreateDialog」が抜けていますがコピペミスなのでw気にしないでくださいw
- 483 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:02:49 ]
- エラーコード1812の意味を調べりゃ一目瞭然
- 484 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:04:59 ]
- 481ではないしついでに聞こうとも思っていないが、
調べてみたらなるほど一目瞭然だな。
- 485 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:11:32 ]
- Error Lookupで見ると「指定されたイメージ ファイルはリソース セクションを含んでいません。 」。
ごめん、馬鹿なんです。resource.hの中に手動で何か追加するとか、そんな感じなの?
- 486 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:16:25 ]
- EXEの中にダイアログのデータが入っていないということ。
EXE内にリソースを入れるようなことをしたか?
- 487 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:31:35 ]
- >>486
おお!VCにScript1.rcを追加したら表示されまいた! ありがとー! また来ますノシ
- 488 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:34:58 ]
- 低脳の悪寒
- 489 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:40:12 ]
- GetLastErrorの値まで調べておきながらエラーメッセージを調べないって何なんだ・・。
- 490 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 23:42:36 ]
- >>487
二度と来なくていい
- 491 名前:471 mailto:sage [2007/04/03(火) 00:04:38 ]
- >>474
>>477 >>478 >>479 ありがとうございます 静的な場合はリソースに記述 動的な場合はSetDlgItemTextで記述 という感じに考えます
- 492 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 01:51:54 ]
- >>443
アルファ値って255が不透明のはずだったけど
- 493 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 02:32:04 ]
- VCのリソースエディッタでダイアログをデザイン、ラジオボタンを並べました。
グループボックス内に配置し2グループに分けたのですが どうも両グループ同一と認識いされているようで、2個同時にオンにできません。 同時に2個オンにするにはどうすればいいのでしょうか?
- 494 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 02:40:07 ]
- 各グループで先頭のタブオーダーを持つラジオボタンのグループプロパティをTRUEにする
- 495 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 02:50:36 ]
- >>494
出来ました。夜分にサンクス。
- 496 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 08:27:36 ]
- >>493
ラジオ1 ラジオ2 ラジオ3 で1塊、ラジオ4 ラジオ5 ラジオ6 で1塊 として (レイアウト - タブオーダー で順序そろえてから) 「ラジオ1」 と 「ラジオ4」 のプロパティ グループ にチェック それ以外のラジオのプロパティ グループ はアンチェック これで望みの動作になると思われ
- 497 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 09:20:12 ]
- Vistaの検索を自分のプログラムから利用するための
情報へのポインタはないでしょうか?
- 498 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 09:32:21 ]
- はい。
- 499 名前:デフォルトの名無しさん [2007/04/03(火) 11:54:20 ]
- >>492
そういえばそうだ ますますわかんなくなってきた
- 500 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 12:00:45 ]
- ストリーミング放送(livedoorのネットラジオ)を録音するのに良い方法はないでしょうか?
放送をダウンロードするのではなくて、現在再生中の放送を録音するみたいなAPIとか無いものでしょうか? ちなみに当方VB6です。
- 501 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 12:59:26 ]
- >>499
RGBQUAD の rgbReserved が 0 デフォルトなんだよね… 1-alpha と alpha がごっちゃごちゃだわ
- 502 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 13:28:06 ]
- >>500
せめてもう少しマトモな書き方ができないものか
- 503 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 13:52:26 ]
- LivedoorStreamingRecording()
- 504 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 14:01:01 ]
- >>500
物理的にライン出力と入力を線でつないで録音するといいよ。
- 505 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 15:08:08 ]
- >>503
探したじゃないかw
- 506 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 19:28:29 ]
- プログラム中で生成したカラーのビットマップをマウスカーソルに
設定するにはどうしたらいいでしょうか? マウス用のリソースを 用意せずにリアルタイムにマウスカーソルを書き換えたいのです。
- 507 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 19:54:33 ]
- win32APIの勉強し始めたばかりのオレが答えてみる
マウス表示を消してマウス位置を調べてそこにBMPを描画すればいいんじゃね?
- 508 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 19:56:48 ]
- CreateCursorしといて、WM_CURSORとかでSetCursorでなくて?
システムグローバルに書き換えたい、というなら話は別だが
- 509 名前:デフォルトの名無しさん [2007/04/03(火) 20:17:44 ]
- よろしくお願いしまっす。
SetForeGroundWindow等でもフォアグラウンドになったりしない ウィンドウってできないんでしょうか。 現在はWS_EX_NOACTIVATEをつけて、 WM_MOUSEACTIVATEにMA_NOACTIVATEANDEATを返すようにして 普通ではアクティブ化しないようになっています 具体的にはツールチップのようなウィンドウを マウ筋の「スクロールを監視」に引っ掛からないようにしたいんですが。 当該ウィンドウ上でホイールを回転させると アクティブ化しないまでも他のウィンドウのフォーカスを奪ってしまうんです
- 510 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 20:30:48 ]
- 制御したい動作のはフォアグラウンド化なのか、アクティブ化なのか、フォーカス持ちなのか。
- 511 名前:509 mailto:sage [2007/04/03(火) 21:02:37 ]
- どうも。言葉が曖昧ですんません
現在アクティブなウィンドウが非アクティブにならなきゃいいんです。。 つまりアクティブ化しないように出来ませんかってことで
- 512 名前:506 mailto:sage [2007/04/03(火) 21:02:43 ]
- >>508
CreateCursorを調べてみましたが、モノクロのビットマップカーソルは 作成できるようです。今回はカラー(24bit以上か、せめて16bit以上) のマウスカーソルを作りたいのです。 システムグローバルではなくて、自アプリのカーソルのみです。 >>507 その方法だと、自アプリの縁を少しはみ出した状態で(ホットスポットが 自アプリ内)、クライアント領域の外にマウスが描画されないです。
- 513 名前:506 mailto:sage [2007/04/03(火) 21:11:20 ]
- カラーのマウスカーソルに関しては、CreateIconIndirectっていうのを
見つけました。
- 514 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 21:40:59 ]
- >>512
ttp://msdn2.microsoft.com/en-us/library/ms648379.aspx
- 515 名前:デフォルトの名無しさん mailto:sage [2007/04/03(火) 23:23:11 ]
- Response & Balance 2600cc Dohc Engine Twin Turbo
- 516 名前:デフォルトの名無しさん [2007/04/04(水) 01:19:05 ]
- >>511
違う方法になるけどWS_EX_TRANSPARENTは駄目?
- 517 名前:509 mailto:sage [2007/04/04(水) 02:20:26 ]
- >>516
ありがとうございます。 マウスホイールが透過するようになりました が、クリックも透過してしまいます。 なんか情報後出しになってしまいましたが。
- 518 名前:517 [2007/04/04(水) 02:36:46 ]
- >>517
WM_COMMANDを監視してマウ筋から送られてくるコマンド(message)に対して return値をごにょごにょする
- 519 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 06:46:10 ]
- >>509
WM_WINDOWPOSCHANGINGでSWP_NOACTIVATEを強制的に立てる
- 520 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 09:52:27 ]
- マウスフックを使用したプログラムを作成しているのですが、
システムフックが上手く機能しません。以下の事例と全く同じ現象です。 rararahp.cool.ne.jp/cgi-bin/lng/vc/vclng.cgi?print+200305/03050042.txt 他のプログラムのソースを参考にしたいので、何かあれば教えて下さい。 お願いします。<(_ _)>
- 521 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 10:32:21 ]
- >>520
その先読んでみたけど仕様を勘違いしているただの間抜けにしか見えないんだが
- 522 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 11:56:15 ]
- ウィンドウ上にボタンを配置し、クリックで新しいウィンドウを表示するプログラムを作成しています。
クリックで呼び出される側は WM_DESTROY メッセージが来たときに SendMessage(hWnd, WM_CLOSE, 0, 0L); として終了しています。 で、質問なのですがクリックで表示するウィンドウのCreateWindowで取得したハンドルは クローズしなくてもリークしませんか? しないといけない場合、どこですればいいのでしょうか?
- 523 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 14:50:19 ]
- 親ウィンドウが破壊されるとき、
子ウィンドウも一緒に破壊される。
- 524 名前:デフォルトの名無しさん [2007/04/04(水) 17:07:22 ]
- rand()の代替ルーチンがあったら教えてください
- 525 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 17:17:03 ]
- CryptGenRandom
再現性で問題が出るかもしれないが。
- 526 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 17:17:12 ]
- Win32APIにはないから自分で作れ。
- 527 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 17:19:42 ]
- まあ2000以降は仕様上プロセスが終了したら基本的にオブジェクトは何も残らんけどな
- 528 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:19:10 ]
- ttp://r.tabelog.com/restaurant/images/review/59/59343_29832.jpg
お○んこ画像
- 529 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:51:00 ]
- お○んこ!しかも無修正!!
- 530 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:51:07 ]
- >>528
うひょ〜、よだれが出てくるぜ
- 531 名前:デフォルトの名無しさん mailto:sage [2007/04/04(水) 23:55:44 ]
- >>528
もう我慢できない
- 532 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:00:44 ]
- >>528
綺麗に処理してあるな
- 533 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:04:27 ]
- こんやのおかずにちょうどいい。くれ。
- 534 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:11:10 ]
- 俺、今がちょうどこういうのが欲しくなる時間なんだ
- 535 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 00:11:34 ]
- >>527
終了したプロセスへのハンドルをつかんでい00る、別プロセスがあるかもしれない。
- 536 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 01:22:33 ]
- > つかんでい00る
00ってなんじゃらほい
- 537 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 02:19:39 ]
- パーマン絵描き歌を思いだした
- 538 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 09:51:06 ]
- ここ何スレだよw
- 539 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 11:19:22 ]
- プロセスの実行時間を計るのはどうしたらいいんでしょうか?
実時間じゃなくてプロセスの一部の処理に使ったユーザー時間のようなもの が欲しいです。 PDHとやらを使うのかと思ったんですがよく分かりません。
- 540 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:15:38 ]
- >>539
timeGetTimeの差分じゃダメ?
- 541 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:20:28 ]
- GetProcessTimesじゃらめぇ?
- 542 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:49:32 ]
- >>539
>実時間じゃなくてプロセスの一部の処理に使ったユーザー時間のようなもの >が欲しいです。 ここを詳しく。 処理に費やした時間を計測したいのか?
- 543 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 12:58:29 ]
- CPU時間でしょ。
>>541でおk
- 544 名前:539 mailto:sage [2007/04/05(木) 13:24:19 ]
- >>542
そうです。Unixのtimeの結果のようなものを計算したいんです。 GetProcessTimesを使ってみます。ありがとうございました。
- 545 名前:デフォルトの名無しさん [2007/04/05(木) 13:46:06 ]
- モジュール内で抜けるまでどれくらい時間がかかてtるのかを計測したいなら
GetTickCountでいいような希ガス
- 546 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 16:01:50 ]
- すいませんWin32API入門の第72章リソースで詰まってしまいました
BorlandC++にBCCFormを入れてます EDGEで32×32のtest.bmpを作って、アイコンとして読み込みたいんですが LoadIcon()は分かるんですが、そこに至るまでが???で 宜しくお願いします
- 547 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 17:00:16 ]
- >>546
「メニュー」→「プロジェクト」→「プロジェクトに追加」 ファイルの種類を「リソースファイル (*rc)」にして、作成したrcファイルを指定する。 これだけで、後はその例通りに行けるよ。
- 548 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 18:21:32 ]
- >>547
レスありがとうございます でもどうやらどつぼにはまったようで、さっぱり分かりません .RES拡張子のファイルがないので リソースコンパイラがよく分かってないようです
- 549 名前:デフォルトの名無しさん mailto:sage [2007/04/05(木) 18:25:35 ]
- BorlandC++なら自前で .res にコンパイルしなくても
コンパイラが自動でやってくれる。
|

|