- 1 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:40:03 ]
- スレ立てるまでもない、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 【前スレ】 61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/
- 2 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:43:45 ]
- - MSDN ホームページ
www.microsoft.com/japan/msdn/ - MSDN ライブラリ msdn.microsoft.com/library/ msdn.microsoft.com/library/ja/ - MSDN2 ライブラリ msdn2.microsoft.com/en-us/library/ msdn2.microsoft.com/ja-jp/library/ - MSDN ライブラリ (ローカル版) www.microsoft.com/downloads/details.aspx?familyid=6FF3BC60-32C8-4C22-8591-A20BF8DFF1A2&displaylang=ja www.microsoft.com/downloads/details.aspx?familyid=B8704100-0127-4D88-9B5D-896B9B388313&displaylang=ja - Windows SDK & Platform SDK www.microsoft.com/downloads/details.aspx?FamilyID=74dd6e2d-89c6-4e1e-af00-fc7d70f15439&DisplayLang=en www.microsoft.com/downloads/details.aspx?FamilyID=c2b1e300-f358-4523-b479-f53d234cdccf&DisplayLang=en www.microsoft.com/downloads/details.aspx?FamilyID=ff6467e6-5bba-4bf5-b562-9199be864d29&DisplayLang=en www.microsoft.com/downloads/details.aspx?FamilyID=7614FE22-8A64-4DFB-AA0C-DB53035F40A0&displaylang=ja www.microsoft.com/downloads/details.aspx?FamilyId=484269E2-3B89-47E3-8EB7-1F2BE6D7123A www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm
- 3 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:44:29 ]
- - Google
www.google.com/ - 猫でもわかるプログラミング www.kumei.ne.jp/c_lang/ - Win32 API入門 wisdom.sakura.ne.jp/system/winapi/ - Win32 プログラミング入門 www7.plala.or.jp/keny01/ - Advanced Windows (書籍) www.amazon.co.jp/dp/4756138055 -おまけ Build19が見たい人で余裕のある人は●でも買ってくれ。
- 4 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:54:07 ]
- 60 ttp://pc11.2ch.net/test/read.cgi/tech/1196874830/
59 ttp://pc11.2ch.net/test/read.cgi/tech/1194701996/ 58 ttp://pc11.2ch.net/test/read.cgi/tech/1191781463/ 57 ttp://pc11.2ch.net/test/read.cgi/tech/1189255282/ 56 ttp://pc11.2ch.net/test/read.cgi/tech/1186989201/ 55 ttp://pc11.2ch.net/test/read.cgi/tech/1184853465/ 54 ttp://pc11.2ch.net/test/read.cgi/tech/1181645965/ 53 ttp://pc11.2ch.net/test/read.cgi/tech/1178882828/ 52 ttp://pc11.2ch.net/test/read.cgi/tech/1176828891/ 51 ttp://pc11.2ch.net/test/read.cgi/tech/1174416295/ 50 ttp://pc11.2ch.net/test/read.cgi/tech/1171721448/ 49 ttp://pc10.2ch.net/test/read.cgi/tech/1168708801/ 48 ttp://pc10.2ch.net/test/read.cgi/tech/1166172047/ 47 ttp://pc8.2ch.net/test/read.cgi/tech/1163375772/ 46 ttp://pc8.2ch.net/test/read.cgi/tech/1159158014/ 45 ttp://pc8.2ch.net/test/read.cgi/tech/1156032806/ 44 ttp://pc8.2ch.net/test/read.cgi/tech/1151501925/ 43 ttp://pc8.2ch.net/test/read.cgi/tech/1148005509/ 42 ttp://pc8.2ch.net/test/read.cgi/tech/1144962549/ 41 ttp://pc8.2ch.net/test/read.cgi/tech/1141392216/
- 5 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:54:39 ]
- 40 ttp://pc8.2ch.net/test/read.cgi/tech/1138893959/
39 ttp://pc8.2ch.net/test/read.cgi/tech/1136673250/ 38 ttp://pc8.2ch.net/test/read.cgi/tech/1133798345/ 37 ttp://pc8.2ch.net/test/read.cgi/tech/1131884991/ 36 ttp://pc8.2ch.net/test/read.cgi/tech/1128951330/ 35 ttp://pc8.2ch.net/test/read.cgi/tech/1125850096/ 34 ttp://pc8.2ch.net/test/read.cgi/tech/1122723009/ 33 ttp://pc8.2ch.net/test/read.cgi/tech/1120153520/ 32 ttp://pc8.2ch.net/test/read.cgi/tech/1117271829/ 31 ttp://pc8.2ch.net/test/read.cgi/tech/1114762194/ 30 ttp://pc8.2ch.net/test/read.cgi/tech/1112345886/ 29 ttp://pc8.2ch.net/test/read.cgi/tech/1110281860/ 28 ttp://pc5.2ch.net/test/read.cgi/tech/1108199304/ 27 ttp://pc5.2ch.net/test/read.cgi/tech/1106103119/ 26 ttp://pc5.2ch.net/test/read.cgi/tech/1104109858/ 25 ttp://pc5.2ch.net/test/read.cgi/tech/1101393155/ 24 ttp://pc5.2ch.net/test/read.cgi/tech/1098967135/ 23 ttp://pc5.2ch.net/test/read.cgi/tech/1095534704/ 22 ttp://pc5.2ch.net/test/read.cgi/tech/1092524669/ 21 ttp://pc5.2ch.net/test/read.cgi/tech/1090422324/
- 6 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 02:55:10 ]
- 20 ttp://pc5.2ch.net/test/read.cgi/tech/1088140233/
19 ttp://pc5.2ch.net/test/read.cgi/tech/1084697545/ 18 ttp://pc5.2ch.net/test/read.cgi/tech/1081702990/ 17 ttp://pc5.2ch.net/test/read.cgi/tech/1077470361/ 16 ttp://pc2.2ch.net/test/read.cgi/tech/1073830065/★ 15 ttp://pc2.2ch.net/test/read.cgi/tech/1069339866/★ 14 ttp://pc5.2ch.net/tech/kako/1065/10653/1065328397.html 13 ttp://pc5.2ch.net/tech/kako/1059/10595/1059549320.html 12 ttp://pc5.2ch.net/tech/kako/1056/10560/1056033645.html 11 ttp://pc5.2ch.net/tech/kako/1052/10526/1052651750.html 10 ttp://pc5.2ch.net/tech/kako/1047/10478/1047819779.html 9 ttp://pc5.2ch.net/tech/kako/1044/10449/1044929160.html 8 ttp://pc5.2ch.net/tech/kako/1040/10409/1040964626.html 7 ttp://pc3.2ch.net/tech/kako/1036/10366/1036654893.html 6 ttp://pc3.2ch.net/tech/kako/1032/10325/1032548635.html 5 ttp://pc3.2ch.net/tech/kako/1028/10285/1028580373.html 4 ttp://pc3.2ch.net/tech/kako/1023/10233/1023361418.html 3 ttp://pc.2ch.net/tech/kako/1017/10170/1017072275.html 2 ttp://pc.2ch.net/tech/kako/1006/10067/1006783012.html 1 ttp://pc.2ch.net/tech/kako/991/991576947.html
- 7 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 03:54:28 ]
- >>1 乙
- 8 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 17:41:20 ]
- いろいろググってわからなかったので、質問します。
GetFocus()でフォーカスのあるウィンドウハンドルを取得し、このウィンドウが文字入力できるかできないかを知るためにはどんな関数があるでしょうか? Immやウィンドウ情報関係を見てみたのですが、見つかりませんでした。 ボタンに対して文字入力できない、エディットボックスはできる、という判定をしたいためです。 有識者の方、よろしくお願いします。
- 9 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 17:46:44 ]
- よ〜く考えればわかる
- 10 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 17:51:07 ]
- なんか押してみる
- 11 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 18:08:06 ]
- サブクラス化してて入力できるボタンだったり、完全オリジナルなコントロールだったらどうするんだろう?
- 12 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:13:42 ]
- WM_GETDLGCODEを送ってみるとか
- 13 名前:デフォルトの名無しさん mailto:sage [2008/02/04(月) 19:22:41 ]
- ウィンドウクラスがEDITかどうかとか
- 14 名前:前スレ981 mailto:sage [2008/02/05(火) 00:09:30 ]
- >>984
へんな書き方ですいません。 項目ABCがリソース使ってメニューを作れることは確認してます。 また、項目ABCDEFをリソースで持たずに、全てInsertMenu()でも作ってみました。 わからないのは、 項目ABCはリソースで持ってて、 Bのサブメニューである項目DEFをInsertMenu()あたりの関数で追加して作る方法があるかどうか、 ということでした。 ご存知ありませんか?
- 15 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:11:44 ]
- 質問なんですが
ウインドウにエディットボックスを作ったのですが エディットはサブクラス化していてWM_PAINTで 線を描画したのですがエディットに書き込むことが できなくなりました。何か良い方法ないですか?
- 16 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 00:33:07 ]
- >>14
D,E,Fを持ったメニューハンドルをhSubMenuとして、 SetMenuItemInfo()でBを書き換えればいいんじゃないの?
- 17 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 09:09:19 ]
- >>15
エディットボックスをサブクラス化してWM_PAINTを奪ったんだろ? それって、書き込まれたものを描画してないだけじゃねーの?
- 18 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 09:49:08 ]
- どうもすみません、教えてください。
縦スクロールするウィンドウの全てを、1枚の画像としてキャプチャしたいのですが、 PrtScを擬似的に発生させる方法では、不可能ですよね?? (PrtScでは、画面に表示させている部分しかキャプチャされないので・・・) そういった機能を持ったフリーソフトも幾つかある様なので、 何かしら方法があると思うのですが、どうしても分かりません(ググっても分かりませんでした)。 『 縦スクロールするウィンドウの全てを、1枚の画像としてキャプチャする方法 』 をご存知の方は、ぜひともご教授ください。 お願い致します。m(。−_−。)m
- 19 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 10:05:20 ]
- >>18
ウィンドウをスクロールさせつつキャプチャしてるだけだと思われ 現在のスクロールバーの位置みて、動的に描画してるアプリもあるだろうし、 API一発でゴッソリ抜けるってのはないかと
- 20 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 10:20:59 ]
- > PrtScを擬似的に発生させる方法では、不可能ですよね??
仮にそんな方法で出来たとしてもキャプチャの為だけにクリップボードを勝手に書き換えるソフトなんてやだなあ それはそうと、IEの描画をキャプチャしてるソフトとかはIEのinterface使ってると思われ とりあえずIHTMLPainterとかそれっぽいのが見つかった IE以外だとスクロールバーを自前で描いてるソフトもあるから結構難しいと思う
- 21 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 10:25:17 ]
- 既にある加え新しく作ったウィンドウを作った場合、そのウィンドウを終了する際の
処理ってDestroyWindowだけでPostQuitMessage(0);はいらないんですか? PostQuitMessage(0);をすると全てのウィンドウが消えてしまうんですが
- 22 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 10:32:26 ]
- >>21
いらない PostQuitMessageはメッセージループを終了させるのに使う
- 23 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 10:56:47 ]
- PostQuitMessageはメインウインドウのWM_DESTROYで呼ぶべや。
メインウインドウをDestroyするのにPostQuitMessageを使ってたんか?
- 24 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 11:13:51 ]
- >>22
ありがとうございます。メッセージループを抜けるときだけに使うんですね >>23 WM_DESTROYでPostQuitMessageしてたんで、新しく作ったウィンドウのプロシージャ の方にWM_DESTROYがきたときもPostQuitMessageしたらプログラムが終了してしまった ので聞いてみました
- 25 名前:デフォルトの名無しさん [2008/02/05(火) 15:07:02 ]
- Win32プログラミングに関して英語で一番情報量が多いサイトってMSDN以外にはどこがありますか?
- 26 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 15:08:25 ]
- Google
- 27 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 16:03:14 ]
- >>26
MSDNを入れても一番情報量が多いなw
- 28 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:10:31 ]
- ttp://www.kumei.ne.jp/c_lang/sdk2/sdk_118.htm
このプログラムのhChild1のハンドルがFindWindow("mychild1",NULL)では取得できませんでした 取得できない理由を教えてエロい人
- 29 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:27:42 ]
- msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_win32_findwindow.asp
調べろカス
- 30 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 18:42:17 ]
- うは。。。親を持たないウィンドウのみだったのね。。。
- 31 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 21:48:42 ]
- >>28のプログラムでいうhWndのハンドルってグローバル使わない方法で取得するとしたらスマートな方法ある?
あとCreatWindow()で親ウィンドウのハンドルだけ与えてWS_CHILDをつけないのって問題あり?
- 32 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:17:17 ]
- #define WS_OVERLAPPED 0x00000000L
- 33 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 22:18:22 ]
- >>31
前者の答えとしては、作成時に渡したIDでGetDlgItemを呼び出すか、 SetPropでウィンドウにデータを関連付けてしまう方法もある。 後者は、WS_CHILDもWS_POPUP無しだとWS_OVERLAPPEDになるな。 で、指定した親ウィンドウは、作ったウィンドウのオーナーになる。
- 34 名前:デフォルトの名無しさん mailto:sage [2008/02/05(火) 23:57:49 ]
- _CrtSetDbgFlagで
LocalAllocの発見は出来ないですか?
- 35 名前:は@c44.010.c3-net.ne.jp ◆cplnFO9T0I [2008/02/06(水) 00:48:55 BE:272355269-2BP(1001)]
- ダイアログボックスについて質問です
・コントロールを一時的に無効化する方法 ・最大化メッセージを奪い取って破棄する方法 (→WM_SYSCOMMANDのSC_MAXIMIZEを横取りしてもうまくいかず、Spy++でアタッチしているときのみうまくいきました) この2つを教えてください。
- 36 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 01:21:01 ]
- >>35
前者:EnableWindow() 後者:wParam == SC_MAXIMIZEの時、return TRUE;
- 37 名前:8 mailto:sage [2008/02/06(水) 10:06:46 ]
- 返信いただいた方、ありがとうございます。
>>11 そこまで考慮していませんでしたが、対象外とさせてください。 >>12 試してみましたが、秀丸などエディタに対しては0リターンとなりました。これはウィンドウハンドルがダイアログじゃないからでしょうか。 ウィンドウハンドルならダイアログじゃなくても判断しないといけないので、これは採用できないです。 >>13 >ウィンドウクラスがEDITかどうか を判定するにはGetClassLong(hWnd, GCL_STYLE)を使えということでしょうか?
- 38 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:14:29 ]
- ほんとにEDITなのかを確認するのならGetClassName()でいいだろう
で、質問者は何のためにそれが知りたいの? WM_CHARを受け付けるかどうかなんて、実際のとこ投げてみるまでわからんと思うが。
- 39 名前:8 mailto:sage [2008/02/06(水) 10:49:20 ]
- >>38
エディットボックスだけならGetClassName()でいけそうですが、秀丸のようなエディタのウィンドウだと任意の名称みたいなので、採用できなさそうです。 理由はIMEの仕事をしていまして、キーイベントを受け付けて文字表示する前に、文字入力可能な画面かどうかを判断したかったためです。 まわりくどいことしなくても、もっと◎な方法がありそうな気がして今もググってる最中です(-_-;)
- 40 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 10:55:48 ]
- そこまで行くと汎用的な方法は無いよ
ググったって出てこない WM_CHARに対する実装は結局コード書いてる人依存だから エディットボックスだって反応する保障はない
- 41 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 11:04:57 ]
- マジレs
文字入力を支援するというか、標準的な入力として提供してるのがエディトボックスなわけで なにもエディトボックスをサブクラスしないと入力できないわけではない もし 8 が「入力できるウインドウ」と汎用的に言ってるなら 40 の言うように不可能かと。 そもそもエディトボックスしかり、入力したのが表示されるという仕組みまで見ると キーボードから入力があれば、なにを押されたかプロシージャなりで判断し自前のバッファに覚えて 「文字に見える画像やカーソル(キャレット)を画像として表示」しているウインドウにしかすぎない。
- 42 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 11:06:57 ]
- そういやIMEはどこで判断してるんだろうな。
リードオンリーなEDITでも出てこないよな。
- 43 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 11:07:21 ]
- >>39
1. GetWindowLongPtrでウィンドウプロシージャを得る 2. 逆アセンブラを積む 3. 得られたウィンドウプロシージャを順次逆汗してWM_KEYDOWN/WM_CHAR/WM_IME_***に対してエディタっぽい事をしてるか調べる この方法が現実的でない限り、方法は無いといっていいだろうなぁ ま、IMEの状態制御はアプリ側での実装になるからね
- 44 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 11:15:06 ]
- >>42
IMEの動作も実装者任せ。自分でやるならimm.h辺りを使えばいい
- 45 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 11:37:34 ]
- EDITしか使った事ないと、IMEやキャレットが自動的に出てくるもんだと思っちゃうかもな。
だから何か特別"文字入力できるウィンドウ"という属性があると考えるのかもしれない。
- 46 名前:8 mailto:sage [2008/02/06(水) 12:45:34 ]
- IMEが持っている情報の中でなんとかやってみる方向になりました。
いや〜IME側の資料ってほんと少ないです。 いろんな意見ありがとうございました。
- 47 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 12:46:21 ]
- 逆にいえば、IMEとしての体裁をしっかり作っておけば相手を気にしなくても動くはずなんだが。
- 48 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:07:24 ]
- exeファイルからDLLのように関数をexportすることって出来ますか?
普通ならmain.exe, sub.dllを作ってsub.dllからexportするんでしょうが mainsub.exeみたいにひとつにまとめられたらそうしたいんですが。
- 49 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:22:43 ]
- ひとつのexeにまとめるんならエクスポート/インポートする必要ないのでは?
- 50 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:28:19 ]
- いやいや
- 51 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:32:41 ]
- sub.dllを使うのはどのプログラムなん?
main.exeだけだったら>>49が言うようにmain.exeのソースコード内に書いておけばいい話だし
- 52 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:47:47 ]
- _CrtSetDbgFlagで
LocalAllocの発見は出来ないですか?
- 53 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:48:31 ]
- exeがエクスポート関数を持ちたいって事?
ふつーに__declspec(dllexport)とか.defファイル用意とか#pragma comment(linker, "/export:...")で出来ると思うが
- 54 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:49:13 ]
- >>52
二度も書くなボケ
- 55 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:50:53 ]
- >>52
それくらい、自分で試してみれば済むことだろ
- 56 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 16:57:37 ]
- DLLのスタートアップルーチン呼ばれない、EXEの関数呼び出したらプロセス起動する
とか許容できるならいいんじゃないか。
- 57 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:01:45 ]
- >>55
試してメモリリークと報告されなかったから聞いているわけだが。
- 58 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:02:45 ]
- じゃあ「できない」でFAだろうがw
- 59 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:07:01 ]
-
YES → 【見つかった?】 ─ YES → じゃあ聞くな死ね / \ 【探した?】 NO → なら、ねぇよ \ NO → 死ね YES → 【成功した?】 ─ YES → じゃあ聞くな死ね / \ 【試した?】 NO → なら、できねぇよ \ NO → 死ね
- 60 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:25:41 ]
- ここの存在意義がwww
- 61 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:33:16 ]
- 「なら、ねぇよ」の所だけ回答が返ってくる可能性がある
- 62 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:36:29 ]
- 試せば分かる事をいちいち聞くな
試して分かった事をいちいち聞くな 探せば分かる事をいちいち聞くな 探して分かった事をいちいち聞くな 当然だろ それに、この程度で存在意義が無くなるスレでもないだろ
- 63 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:44:21 ]
- 早く解決策を書け
- 64 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:53:39 ]
- 何の解決策だよw
- 65 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 17:58:19 ]
- そもそもCRTはスレ違いだぼけなす
- 66 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:00:51 ]
- スレ違いだしCRTのソース読むかMSDN読めば分かるのに、こんな所で一日近く回答待つなんて馬鹿丸出し
- 67 名前:は@cr4-172-178.seaple.icc.ne.jp ◆cplnFO9T0I mailto:Tage [2008/02/06(水) 18:19:43 BE:20174922-2BP(1001)]
- >>36
両者ともうまくいき、ありがとうございます。 ユーザーのリストを取得するにはどうしたらいいでしょうか? とあるスクリプトではDcuments and Settingsにあるフォルダから無理矢理取得しているのですが、 流石にそれはどうかな?と思いまして。
- 68 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:26:40 ]
- FormatMessageはAPIだろ
- 69 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:37:05 ]
- www.kumei.ne.jp/c_lang/sdk/sdk_100.htm
これを参考にスクロールつけてたんですが SB_THUMBTRACKとそれ以外の場合ではスクロール上限が異なってしまいます SB_THUMBTRACKの上限に合わせるにはどうすればよいのでしょうか? nMaxをいじればいいのかと思ってやってたんですがどうにもうまくいかなくて
- 70 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 18:56:20 ]
- 具体的にうまくいかないコードを貼ると解決早い。
HIWORD(wParam)してる?
- 71 名前:69 mailto:sage [2008/02/06(水) 19:11:42 ]
- 変数名が変わっただけでコードは全く同じです;;
si.nMaxの値を小さくするとLINEUP等のスクロール上限が下がるのですがTHUMBTRACKの上限にも影響が出たのでだめでした そこで、dy = max(-1 * si.nPos, min(dy, si.nMax - si.nPos));の「si.nMax」を「si.nMax-適当な固定値」にすると理想的な結果には近づけました ですが、固定値なんか使うと汎用性皆無なのでどうにかならないかと思い質問させていただきました
- 72 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:42:31 ]
- GDI+を使おうと考えてますが、C++で自動変数として用いる場合、問題のあるクラスってありますか?
例えば、Graphics、Font、StringFormat、Bitmap、BitmapData等のクラスを使おうと思っています。 ぱっと見、一応デストラクタで解放されてる気がしますが確信が持てず・・・
- 73 名前:デフォルトの名無しさん [2008/02/06(水) 19:51:14 ]
- C♯, C#相談室 Part34
pc11.2ch.net/test/read.cgi/tech/1162467959/
- 74 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 19:53:25 ]
- 素直にauto_ptrやboost::scoped_ptr等と組み合わせたほうがエレガントだと思う
- 75 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:23:39 ]
- MSDNライブラリにも特に注意点は載っていなかったはずだし、問題ないと思う。
せいぜい、デストラクタより先にGdiplusShutdown呼ばないように気を付けろ。 >>73 71はきっとネイティブ版の方を使うんだろ。
- 76 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:24:11 ]
- >>72
ありません。ただし GDI+ の初期化と開放の前や後で ctor や dtor が 動くといけないので、スタティック変数等では注意が必要か。 >>74 いや、GDI+ (のアレコレ)は C++ でなるべくスタック上に 取るのがスマートだしカッコイイと思う。 .Net で C# なんかだと Dispose の嵐でもーうんざり。
- 77 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:29:18 ]
- エディットボックスのクライアント領域内の行数
を調べるにはどうすればよいでしょうか?
- 78 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:37:52 ]
- 高さ を フォント高さ で割ってやればよいのではないか
- 79 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:43:31 ]
- >>76
C#ならusing使えよ……。
- 80 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:55:07 ]
- using( Graphics g = ... )
using(Bitmap bmp= ...) using(Pen pen= ...) using( Brush br1= .. , br2=...) using( Font font= ... ) g.draw〜 やってられっか(w
- 81 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 20:57:33 ]
- なんでインデントつけるんだよ。
- 82 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:00:49 ]
- >>74-76
レスありがとうございます。 問題ないようですし、startupやshutdownに注意しつつ、楽な自動変数で行きたいと思います!
- 83 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:01:37 ]
- >>81
知恵が無いから。
- 84 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:19:49 ]
- スコープだからに決まってるだろ。
- 85 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:31:44 ]
- つーかusingする必要あるか?
.netならGCが勝手に開放するだろ まーWin9x系を考慮するなら、using使って明示的に開放しとかないとGC作動する前に システムリソース食い潰してOSごと死亡しそうな気はするが
- 86 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 21:38:25 ]
- GCを当てにしていいのはメモリだけ
- 87 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:16:35 ]
- というか実際には仮想メモリをどんどん使い始めてなかなか解放してくれないわけだ。
あまり気にしなければそれでいいわけだけど・・・・ Image.FromFile で作ったImage 等他のリソース(この場合ファイル)をつかみっぱなしの オブジェクなんかもあるし。 こういう場合は簡単にスコープと寿命を一致させられる C++ の方が気持ち良いな、俺は。
- 88 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:22:32 ]
- C的にDispose乱発するとか。
- 89 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:24:07 ]
- いやだからusingがあるんだろ・・・
ってスレ違いだね
- 90 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:25:42 ]
- 参照カウンタ付きのスマートポインタ使えばGCなんていらないと思ってる
- 91 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:27:24 ]
- それ何てGC?
- 92 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:30:45 ]
- それで循環参照の罠に引っかかるわけですね
- 93 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:33:56 ]
- using 文マジおすすめ
- 94 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:39:33 ]
- >>93
C++でusingしまくってるとGDI+使う時に衝突してエラーになるから一概におすすめとは言えないよ 最近のコンパイラだとエラー出ないようになってるのかも知れんが .Netの事を言ってるならスレチだから他でやってね
- 95 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:41:40 ]
- >>94
スレ違い
- 96 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:43:20 ]
- >>95
GDI+はスレ違いじゃないよ
- 97 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:45:04 ]
- C++はスレ違い
- 98 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:45:53 ]
- 名前空間の衝突はスレ違いだな
- 99 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:47:07 ]
- C++(/CLI)だと名前空間に別名付けるのが便利。
- 100 名前:デフォルトの名無しさん mailto:sage [2008/02/06(水) 22:53:19 ]
- おまいらそろそろスレ違い杉w
ところで、GDI+ってWin32APIとして見ると画像ファイルの読み書き以外に使える? 描画が全てソフトウェア処理だから重いし、Vistaでこの辺DirectXに丸投げしてくれるかと思ったらそうでも無さそうだし
|

|