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などの質問はそれぞれの言語や開発環境スレで
369 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 14:29:41 ] MVPって(藁) コピペ2回目 pc11.2ch.net/test/read.cgi/tech/1175087786/
370 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 16:24:12 ] しっ、見ちゃいけません
371 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 18:05:11 ] クライアント領域の更新にInvalidateRect(hWnd,NULL,TRUE);を使っているのですが画面がちらつきまくります。 他に良い方法はないでしょうか?
372 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 18:12:03 ] InvalidateRect(hWnd,NULL,FALSE);
373 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 18:23:08 ] >>372 ありがとうございます。 マシにはなりましたが書き直す量が多くなって間隔が短くなるとどうしてもちらつくもんですね……
374 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 18:39:51 ] >>373 背景を消す 新しいのを書く これを繰り返すからちらつくんだよ。 WM_ERASEBKGNDが呼ばれているなら何もせずreturnする。 ダブルバッファリングをつかう。 方法は検索すれば見つかると思う。 要するにメモリ上で背景や絵を描画して その完成させた絵をウィンドウに描画する。
375 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 21:36:17 ] カスタムリソースのPNGをHBITMAPで読み出してBITMAPと同じように扱うにはどうすればいいのでしょうか? PNG GDI+ libpng カスタムリソース等であらかたググってみましたが理解できませんでした。 hp.vector.co.jp/authors/VA016379/cpplib/libpng.htm も試してみましたがlibpng.libに変な部分があるという旨のエラーが出て(bcc32)コンパイルできませんでした。 うぐぅ
376 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 21:45:22 ] 全然確認してないけど後者はマングリの問題な気がする
377 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 21:50:16 ] >>375 エラーはコピペしろ。エスパーに期待するな。 だけど俺も>>376 に一票。 そのlibpngもbccでビルドしたのか?
378 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 21:59:06 ] Error: 'C:\PROGRAM FILES\BORLAND\BCC55\LIB\LIBPNG.LIB' contains invalid OMF record, type 0x21 (possibly COFF) です。すいません。 ビルドは説明通りVC++EEでやりました。それがいかんのですね。 bccならどうコンパイルしていいのかがわからなかったもので。
379 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:00:48 ] >>378 っ coff2omf.exe
380 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:04:12 ] 逆にお前が書くプログラムもVC++でコンパイルすればいい。
381 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:13:13 ] >>379 コンパイルはうまくいったみたいなのでこれから実際にloadpngが使えるか試してみます。 >>380 猫で始めたんですがVC++の使い方がよくわからないんですよね。 PSDKのインストールまではやってみたんですがコンパイルもエラーでまくるし……
382 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:23:59 ] プログラム→Visual C++ 2005 Express Edition→Visual Studio Tools→Visual Studio 2005 コマンド プロンプト コンパイラのコマンド名はbcc32ではなく、VC++ではcl。これでVC++コンパイラが使える。 コンパイラオプションも色々違うが、MSDN2を見てくれ。
383 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:26:56 ] 連投すいません。 プログラム内で hBmpBackGround = LoadPng("./images/background.png"); 記述したところ Error: 外部シンボル '_png_create_read_struct' が未解決(D:\MY DOCUMENTS\VISUAL STUDIO 2005\PROJECTS\****.OBJ が参照) などのエラーが16個出ました。 そのままloadpng.cppをコンパイルすると 警告 W8017 loadpng.cpp 1: マクロ 'STRICT' の重複定義 エラー E2109 loadpng.cpp 123: 許されない型(関数 LoadPng(const string &) ) エラー E2108 loadpng.cpp 124: typedef 'png_color' の使い方が間違っている(関数 LoadPng(const string &) ) とかforループの行に対して 警告 W8008 ****.cpp 432: 条件が常に真(関数 ***() ) が出るので1、4、11行目はコメントアウトしています。 他の必要なファイルは***.cppと同じディレクトリです。画像は./images/以下にあります。
384 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:29:28 ] >>382 bcc32もVisual Studio 2005 コマンド プロンプトから動かしているんですが、 C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\windows.h(28) : warning C4068: 不明なプラグマがありました。 C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\windows.h(200) : fatal error C1083: include ファイルを開けません。'windef.h': No such file or directory というエラーが出てコンパイルできないので仕方なくbccを使ってます……
385 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:44:11 ] 英語だからって条件反射でエラー文読むの拒否してないか?
386 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:47:03 ] >>385 ではなくて、自分の作ったファイルならともかくVCの用意してるファイルでのエラーなんかどう対処すればいいんだ…… ってのとマイクロソフトへの不信感から勝手にお手上げしてる感じですね……
387 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:48:08 ] はあ?
388 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:51:08 ] 面白くなってまいりました
389 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:55:06 ] >>384 なぜbcc32でVCのインクルードフォルダが現れる?
390 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:56:27 ] 1つめは対処法がわからないのでとりあえず置いておいて、 2つめに関してはPSDKのincludeにあったものをVCのディレクトリにコピーしました。 とりあえずC1083になるファイルは全部コピーしたのですが C:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE\xlocale(326) : warning C4530: C++ 例外処理を使 っていますが、アンワインド セマンティクスは有効にはなりません。/EHsc を指定してください。 d:\my documents\visual studio 2005\projects\nyaopuyo\loadpng.cpp(121) : error C2664: 'memset' : 1 番 目の引数を 'std::_Vector_iterator<_Ty,_Alloc>' から 'void *' に変換できません。(新しい機能 ; ヘルプ を参照) with [ _Ty=png_color, _Alloc=std::allocator<png_color> ] この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。 等のエラーが多数出ます。
391 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 22:57:19 ] >>389 あ、それはVC++コマンドからclでコンパイルしたときのものです。
392 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:01:03 ] >>384 > bcc32もVisual Studio 2005 コマンド プロンプトから動かしているんですが エラーメッセージの内容から言って、それはVC++のclコンパイラが出しているものだ。 bcc32じゃない。 それにしても、clがwindows.hを読んでunknown pragmaとか、 windef.hが無いだとか、明らかにおかしい状態になっているな。 インストールミスかなにかじゃないのかな。あるいはウィルスにでも 食い荒らされたか。
393 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:02:40 ] >>390 C4530はエラーではなくワーニングだが(それぐらいは区別しろ、頼むから) clに-GXオプションを与えればよい。 2番目はあんたのユーザコードloadpng.cppの問題だろ。
394 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:07:32 ] >>390 >memset(vPalette.begin(), 0, nPal * sizeof png_color); こんなことをやっている糞コードのようだな。 こんなコードはドブに捨ててしまえ……と言いたいところだが、とりあえず vPalette.begin -> &vPalette[0] とでも書き換えるんだな。
395 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:10:41 ] >>390 コピーする必要は無い。 単にPlatfrom SDKのIncludeフォルダをインクルードディレクトリに追加すれば十分だ。
396 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:11:39 ] >>393 -GXよりも警告メッセージのとおり/EHscがお勧め。 VC++ 8からGXは推奨しないというような警告が出るようになったはず。
397 名前:デフォルトの名無しさん [2007/04/01(日) 23:15:04 ] コンパイルが通ったら今度は「うまく動きません。どうすればいいんでしょうか?」と長いソースを張り付ける予感。 しかし、画像のロードとセーブだけならもっと簡単なライブラリがあるんだけどなw
398 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:15:27 ] >>390 2番目のはイテレータとポインタをごっちゃにしているのが悪い。 イテレータ⊇ポインタだが、逆は成り立たない。 std::vector<png_color> v;というのがあったとしたら、 vの先頭要素へのポインタは&v[0]で取得できる。 memsetを使わずに、std::fill使えとか、vectorのメンバでどうにかしろとも言えるが。
399 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:19:10 ] みなさんありがとうございます。+゚:。(つД`)*.゚。 >>392 自分でincludeディレクトリいじったことはもちろん無いし、ウィルスも恐らく無かったので インストールミスなんでしょうかね…… >>393 >>396 仰る通りで申し訳ないです。/EHscでコンパイルを試みました。 >>394 3箇所書き換えたらエラーが loadpng.cpp(121) : error C2064: 0 引数を取り込む関数には評価されません。 に変わりました。 >>395 そうだと思ったんですがその方法を調べるとまた時間がかかりそうだったのでその場しのぎの苦肉の策ということで……
400 名前:デフォルトの名無しさん [2007/04/01(日) 23:23:15 ] >カスタムリソースのPNGをHBITMAPで読み出してBITMAPと同じように扱うにはどうすればいいのでしょうか? >PNG GDI+ libpng カスタムリソース等であらかたググってみましたが理解できませんでした。 この質問を自分もしたかったので、成り行きに注目していたんだが。。。
401 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:26:04 ] >>399 vPalette.begin() -> &vPalette[0] ↑ かっこぬけてはるみたいやね。 もう一つも同じ要領。
402 名前:394 mailto:sage [2007/04/01(日) 23:26:07 ] >>399 悪い悪い、 &vPalette[0]()にしちゃったのか? 正しくは、 vPalette.begin() -> &vPalette[0] だ。
403 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:31:35 ] コンパイルはできてオブジェクトファイルまでは作成できました。 ライブラリが見あたらないと出たのでSDKから根こそぎコピーしました。 MSVCRT.lib(MSVCR80.dll) : error LNK2005: _abort は既に LIBCMT.lib(abort.obj) で定義されています。 LINK : warning LNK4098: defaultlib 'MSVCRT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。 error LNK2019: 未解決の外部シンボル __imp__ReleaseDC@8 が関数 "struct HBITMAP__ * __cdecl LoadPng(中略) で参照されました。 等のエラー、警告が山ほど出てきました…… 根こそぎコピーがマズかったのでしょうか。
404 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:32:24 ] memset(&vPalette, 0, nPal * sizeof png_color); もしこう書いているのであれば、単にvPalette.resize(nPal)で十分なはず。 png_colorはどうせただのPODな構造体だろ。 デフォルト初期化と0クリアは同じような結果になるはず。
405 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:35:23 ] >>400 いやはや実は俺もなんだ・・・
406 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:36:17 ] もう働きたくない
407 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:43:26 ] つうか>>375 のリンク先のLoadPng()って、ファイルからロードする仕様じゃん。 カスタムリソースをロードしたいんじゃなかったの? つうかVC++持ってるんなら素直にCImage使えやってのは禁句か。 GDI+が対応してるフォーマット(PNGを含む)は全対応だし、リソースからの ロードも出来るぞ。 atlimage.hな。
408 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:44:39 ] Express EditionにはATLないだろ。
409 名前:デフォルトの名無しさん mailto:sage [2007/04/01(日) 23:47:30 ] ああ、Express Editionか。これは失礼。
410 名前:375 mailto:sage [2007/04/01(日) 23:53:23 ] >>407 カスタムからロードしたかったんですが、できるかどうかわからなかったのでとりあえずやってみようって感じです。 で、できないんですか……残念です。 VC++はウィンドウ表示するだけのプログラムすらコンパイルできなかったので(↑でコンパイルまでは解決)bccに乗り換えてました。 本格的にやりたいので製品版も買おうと思うんですが、製品版も今のような調子だったりしないか怖くて手が出ません。 あと、EEでも猫の本とだいぶ違っているし(猫のが古いんだと思いますが)、C++はまだ始めたてだったりするのでそれも手が出ない理由です。 ちなみに製品版買うならVisual Studio 2005 Standard Edition(Academic Edition)ですかね? やりたいことはWINAPI(将来的にはDirectXでも)でゲーム制作です。
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メッセージだけを取れるか?という意味? 例えばタイマーとか