- 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などの質問はそれぞれの言語や開発環境スレで
- 411 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:54:54 ]
- libpngはPNG_SETJMP_NOT_SUPPORTEDを指定してビルドしない限り、
longjmp()でエラーレポートを行う。 >>375のコードはsetjmp()を呼んでいないようだから、多分全く エラーに対応していないな。 もっとマシなコードを探せ。 setjmp(), longjmp()である以上、デストラクタは実行されないから、 その区間でvectorなんぞを使うのは論外だ。 ま、CreateDIBSection, png_create_read_structあたりのキーワードで google codesearchでもすれば、色々引っかかるだろ。
- 412 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:58:56 ]
- >>410
> 本格的にやりたいので製品版も買おうと思うんですが、製品版も今のような > 調子だったりしないか怖くて手が出ません。 PlatformSDKはEnterprise Editionではそもそも付属してなくて自分で別途 インストール&環境設定しなきゃいけないからな。 あんたがインストールにミスったってだけの話だろ。 Visual Studioの品質の問題じゃない。 あんたに問題解決能力がないだけの話。それは、どんな製品を使おうが変わらないよ。
- 413 名前:348 mailto:sage [2007/04/02(月) 00:02:25 ]
- おながいします・・・orz
- 414 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:04:50 ]
- >>411
VC++ならSEHとの絡みでsetjmp/longjmpでも自動変数のデストラクタが呼ばれるはず
- 415 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:05:28 ]
- お前らスルー汁
- 416 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:06:03 ]
- ていうかもう、API全然関係ないなwww
- 417 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:06:38 ]
- >>414
へぇ。それはいいことを聞いた。教えてくれてありがとう。 ま、それに依存したコードは書く気になれないが……
- 418 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:07:01 ]
- 何だこのスレの伸び具合は
- 419 名前:375 mailto:sage [2007/04/02(月) 00:08:05 ]
- >>411
ちょっくら頑張ってきます( `・ω・´) >>412 了解、明日にでもVCとSDK再インスコしまつ。 >>416 サーセンwww
- 420 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:12:50 ]
- Platform SDKよりもWindows SDKのほうがお勧め。
スタートメニューの中にVS 2005への設定を行うショートカットがある。 それを実行するだけで、VSコマンドプロンプトからもIDEからも インクルードパスの設定を含めWindows SDKを使用できる状態になる。
- 421 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:19:56 ]
- 開発環境すらちゃんと構築できないような奴には無理ということで
- 422 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:25:05 ]
- >>413
取りあえず LVM_ 以下の全メッセージを調べてみろ。話はそれからだ。
- 423 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:25:22 ]
- 初心者叩きはその辺にしておいて結局のところこれは誰もわからんのだね?
>カスタムリソースのPNGをHBITMAPで読み出してBITMAPと同じように扱うにはどうすればいいのでしょうか?
- 424 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:29:04 ]
- 普通にLoadResourceで読んでBITMAPに変換すれば
- 425 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:33:19 ]
- EE使ってるちょちんちゃだから、PNGのリソースは妄想に過ぎないに1000ペリカ
と思ったら今日は四月馬鹿じゃんw
- 426 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:54:53 ]
- もう四月馬鹿は終了している件
- 427 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 00:55:13 ]
- >>423
リソースをバイナリデータとして読み取り、それをストリーム化、 Gdiplus::BitmapのIStream*を受け取るコンストラクタへ渡す。 そしてメンバのGetHBITMAPでビットマップハンドルを得る。 これでいい?
- 428 名前:デフォルトの名無しさん [2007/04/02(月) 01:01:58 ]
- UpdateLayeredWindowでウィンドウを透明化させると黒色が完全透明扱いに
なっちゃうんだけどどうやったらSetLayeredWindowAttributeと同じような処理にできるかな
- 429 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 01:13:59 ]
- 黒でもアルファ値は255にする
- 430 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 01:38:46 ]
- >>427
横やりでなんですが僕も気になるので実装を詳しく書いて頂けると助かります。
- 431 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 01:45:04 ]
- >>430
詳しくも何も、書いてあることそのままやればいいだけじゃないのか?
- 432 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 01:49:10 ]
- さっきから「僕も気になる」って人が多い件
- 433 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 01:49:14 ]
- GDI+を使うんならPNGのローディングの面倒はGDI+が見てくれる。
>>427そのままでいいはずよ。
- 434 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 02:01:09 ]
- Bitmap::Bitmap(HINSTANCE,WCHAR*)
使えるか知らんがこんなコンストラクタもあるみたいだ
- 435 名前:デフォルトの名無しさん [2007/04/02(月) 02:39:41 ]
- TreeViewのExpandをキャンセルするにはどうしたらいいんでしょうか?
- 436 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 02:48:06 ]
- 僕も気になってるので完全なソースコードをください
- 437 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 02:50:12 ]
- 僕も絶対に気になります。
ソースコードお願いしますこれは絶対に必要ですね。
- 438 名前:432 mailto:sage [2007/04/02(月) 03:10:06 ]
- すまない。俺が悪かったwww
- 439 名前:432 mailto:sage [2007/04/02(月) 03:15:06 ]
- >>435
ツリーが展開される直前に親ウィンドウに TVN_ITEMEXPANDINGが通知されるからそれを引っ掛ける
- 440 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 05:18:15 ]
- 僕も「僕も気になります」が大杉て気になります
- 441 名前:デフォルトの名無しさん [2007/04/02(月) 07:05:30 ]
- 質問スレで言うのもなんだけど、>>427のレスだけでコードが書けない奴って真性のバカだろ。
- 442 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 07:12:51 ]
- 確実に言えるのは書けなかったとしたらもはやこのスレで扱う内容ではない
- 443 名前:428 [2007/04/02(月) 08:24:22 ]
- >>429
SetPixelで0x00ffffffは白が表示されて0xffffffffだと透明になるから アルファ値は読んでるみたいなんだけど、 0x00000000でも透明になっちゃうんだよ
- 444 名前:デフォルトの名無しさん [2007/04/02(月) 11:37:15 ]
- >>439
ありがとうございました。 もうひとつお願いしたいんですが、 イメージインデックスを変える方法はどうしたらいいんでしょうか。
- 445 名前:439 [2007/04/02(月) 11:47:50 ]
- >>444
イメージリスト作ってLVM_SETIMAGELISTでSendする
- 446 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 11:50:33 ]
- 間違えたTVM_だった
- 447 名前:デフォルトの名無しさん mailto:sage [2007/04/02(月) 12:16:19 ]
- ttp://msdn2.microsoft.com/en-us/library/ms650018.aspx
- 448 名前:デフォルトの名無しさん [2007/04/02(月) 12:26:55 ]
- 猫でも分かる〜でWin32プログラミングの基礎は分かりますか?
- 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 ]
- どうも。言葉が曖昧ですんません
現在アクティブなウィンドウが非アクティブにならなきゃいいんです。。 つまりアクティブ化しないように出来ませんかってことで
|

|