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


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

Win32API質問箱 Build62



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に丸投げしてくれるかと思ったらそうでも無さそうだし








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

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

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