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


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

Win32API質問箱 Build76



1 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:56:18 ]
スレ立てるまでもない、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

Win32API質問箱 Build75
pc11.2ch.net/test/read.cgi/tech/1231423602/

2 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:57:13 ]
MSDN
- MSDN ホームページ
www.microsoft.com/japan/msdn/
- MSDN ライブラリ
msdn.microsoft.com/ja-jp/library/
msdn.microsoft.com/en-us/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

書籍
- Advanced Windows 第5版
www.amazon.co.jp/dp/4891005920

3 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:57:46 ]
75 ttp://pc11.2ch.net/test/read.cgi/tech/1231423602/
74 ttp://pc11.2ch.net/test/read.cgi/tech/1229239827/
73 ttp://pc11.2ch.net/test/read.cgi/tech/1227934931/
72 ttp://pc11.2ch.net/test/read.cgi/tech/1226575789/
71 ttp://pc11.2ch.net/test/read.cgi/tech/1224745158/
70 ttp://pc11.2ch.net/test/read.cgi/tech/1221446107/
69 ttp://pc11.2ch.net/test/read.cgi/tech/1217687038/
68 ttp://pc11.2ch.net/test/read.cgi/tech/1215348804/
67 ttp://pc11.2ch.net/test/read.cgi/tech/1212931246/
66 ttp://pc11.2ch.net/test/read.cgi/tech/1210775622/
65 ttp://pc11.2ch.net/test/read.cgi/tech/1208847084/
64 ttp://pc11.2ch.net/test/read.cgi/tech/1207099291/
63 ttp://pc11.2ch.net/test/read.cgi/tech/1204600558/
62 ttp://pc11.2ch.net/test/read.cgi/tech/1202060403/
61 ttp://pc11.2ch.net/test/read.cgi/tech/1199514664/
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/

4 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:57:59 ]
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/
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/

5 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:58:10 ]
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/
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

6 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:58:37 ]
- Google 聞く前に検索
www.google.com/

下記サイトは、違っている事もあるので参考程度にしよう!
流れを参考にしながら、APIの仕様を読めば使えるはず。

- 猫でもわかるプログラミング
www.kumei.ne.jp/c_lang/
- Win32 API入門
wisdom.sakura.ne.jp/system/winapi/
- Win32 プログラミング入門
www7.plala.or.jp/keny01/
●Win32API(C言語)
www.geocities.jp/ky_webid/win32c/

7 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 09:59:40 ]
後ろで大きな爆発音がした。あるいは気のせいかもしれない。
とりあえず今は驚いて振り返る前に、まずパスタをゆでようと思った。



そんな思いで立てましたわ。

8 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 10:28:09 ]
これはいちおつじゃなくて

知らないならレスしないでください。

9 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 12:03:01 ]
CD取り出しするAPIってありますか?

10 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 12:07:38 ]
DeviceIoControl



11 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 12:14:07 ]
mciSendStringで開け閉めできたような

12 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 12:52:48 ]
Windows NT または Windows 2000 または Windows XP でリムーバブル メディアを Ejecting する方法
support.microsoft.com/kb/q165721/


13 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 13:00:30 ]
>>10-12
ありがとうございます

14 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 14:08:09 ]
CDにかかった精子を綺麗に拭き取るAPIありますか?

15 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 14:23:38 ]
::RefreshSamenByHand( HWND hWnd);

16 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 14:25:10 ]
学校サボってる中学生の相手なんかしなくても

17 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 14:32:55 ]
相手してるのも学校サボってる中学生だから

18 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 14:37:36 ]
この時間にレスしてる奴って学校サボってる中学生だから

19 名前:デフォルトの名無しさん [2009/02/03(火) 15:55:27 ]
ウィンドウを作成しESCで閉じるだけのプログラムに
CreateProcess関数でwinmain.exeを起動するプログラムを追加したんだけど

当たり前だけど、新しいウィンドウが開いてマインスイーパーが起動しますよね
この際、最初に作ったウィンドウの子ウィンドウとしてマインスイーパーを起動することは出来ないのでしょうか

20 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 16:05:46 ]
以下の判定文でMDIフレームウィンドウ(一番大本のウィンドウ)が
最前面かどうかを判定しようとしましたが、
よく分からないハンドルしか返って来ません。
MDI子ウィンドウ等かと思いましたが違うようです。
一体何のハンドルが返ってきているのでしょうか?
g_hWndMain == GetWindow( g_hWndMain, GW_HWNDFIRST )



21 名前:デフォルトの名無しさん [2009/02/03(火) 16:19:21 ]
>>20
それはMDIクライアントというウィンドウ。
wisdom.sakura.ne.jp/system/winapi/win32/win139.html

22 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 16:30:09 ]
>>19
そろそろ諦めて

23 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 16:31:06 ]
ホットキーコントロールに表示されてる文字列ってどうやって取得する?


24 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 16:33:34 ]
HKM_GETHOTKEY

25 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 16:34:24 ]
はい?

26 名前:デフォルトの名無しさん [2009/02/03(火) 16:34:50 ]
>>19
できるけど教えない。

27 名前:デフォルトの名無しさん [2009/02/03(火) 16:36:00 ]
>>22
あきらめるって何を?
プログラム組むことあきらめて>>22みたいに、知識無いのに無駄口叩いて粘着する人間になれってこと?

28 名前:デフォルトの名無しさん [2009/02/03(火) 16:37:13 ]
>>26
できるならそれはよかったと安心できたけど
なんで質問スレにいるの?
アホなの?

29 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 16:38:12 ]
718 名前:デフォルトの名無しさん[] 投稿日:2009/01/30(金) 08:29:41
やりたいこととしては、吉里吉里とDXライブラリを同ウィンドウで処理することなんですが


WinAPIでウィンドウ作って
その子ウィンドウとして、ある.exeファイルを起動(吉里吉里)
そして、通常は霧きりで進行、なんらかのフラグでDXライブラリに移行
みたいなのを創造しているのですが、これは可能なのでしょうか?
知識があまり無いので勘違いしまくりの発言だったらすいません

791 名前:デフォルトの名無しさん[sage] 投稿日:2009/01/31(土) 13:18:40
ああ、親ウィンドウのエディットボックス内の入力されている
ファイル名を子ウィンドウで取得させて処理させたいって事か・・・やっと意味がわかった
どのタイミングでさせたいの?場合によっては独自定義メッセージでさせちゃうとかすりゃいいのに

878 名前:デフォルトの名無しさん[] 投稿日:2009/02/01(日) 21:16:33
WinAPIでアプリAを作り、Aを起動すると
ウィンドウを作成し
次に予め作っておいたアプリBを起動し、それをアプリAの子ウィンドウにする
これってどうやればできますでしょうか

885 名前:デフォルトの名無しさん[] 投稿日:2009/02/01(日) 21:27:06
>>881
ハンドルから子ウィンドウは分かりましたがアプリAを起動するとアプリBの.exeを自動で起動する方法が分かりません



数日前からいるこいつだろ。
最初にできるって言った奴責任持って回答しろよw

30 名前:22 mailto:sage [2009/02/03(火) 16:41:40 ]
>>27
26みてーのしかいないから諦めろって事よ

ここで聞いても無駄な時間だと思うぜー



31 名前:デフォルトの名無しさん [2009/02/03(火) 16:42:31 ]
>>29
うんそうだけど、質問スレに粘着して質問に答えずに意味の分からない煽りをする必要性を教えて欲しいかな
暇なの?それとも、初心者が育つのが嫌なの?

32 名前:デフォルトの名無しさん [2009/02/03(火) 16:43:35 ]
>>30
知識無いのに知ったかぶって粘着してる奴ばっかってのは知ってるけど
たまにちゃんと知ってる人も居るから聞いてます
CreateProcess教えてくれた人とかね

33 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 16:48:38 ]
別プロセスのウインドウを親ウインドウに指定する事を禁止する記述は最近のSDKからは消えているので
普通にSetParentでできるかもしれない
ただし親ウインドウに指定できたからと言って期待通りに動くかどうかはまた別問題

34 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 16:52:38 ]
やったことないけど、新規に独自の Window station を作って
STARTUPINFO にそのステーション名渡す とかいう話になるのかね?

35 名前:デフォルトの名無しさん [2009/02/03(火) 17:28:18 ]
>>33
ありがとうございます
既存のウィンドウのハンドルを取得するのはFindWindow関数で出来るみたいなのでちょっとまた試行錯誤してみます

36 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 17:35:41 ]
もう来るなよ

37 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 17:36:35 ]
メッセージフックで他のソフトにWM_KILLFOCUSを通さないようにしたいと思い、
メッセージフック→フックプロシージャ( if(cwps->message==WM_KILLFOCUS)return true; )
とやり、しっかりif(cwps->message==WM_KILLFOCUS)return true;の所にも届いているのですが、
上手くカットできてないのか何故かそのフックを組み込んだソフトにもWM_KILLFOCUSが届いてしまいます。
一度、WM_KILLFOCUSをフックしたらメッセージボックスを出すようにして試してみてちゃんとWM_KILLFOCUS
が送られてくるタイミングでメッセージボックスがだされるのでフックはちゃんとできていると思うんですが
なぜでしょうか?
SetWindowsHookExの第一引数はWH_CALLWNDPROCにしています。

38 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 17:48:33 ]
>>37
It is highly recommended that you call CallNextHookEx and
return the value it returns; otherwise, other applications that
have installed WH_CALLWNDPROC hooks will not receive hook
notifications and may behave incorrectly as a result. If the hook
procedure does not call CallNextHookEx, the return value should be zero.

The CallWndProc hook procedure can examine the message, but it cannot modify it.


39 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 17:54:52 ]
英語よく分がんねぇ
CallNextHookEx呼ぶか、0返すかしろってことだよね?でもCallNextHookExまたは0
返すとメッセージカットできないし、要するにメッセージフックは来たメッセージ
が分かって勝手に処理を追加することはできても本来されるとされていた処理はカット
できないってこと?

40 名前:デフォルトの名無しさん [2009/02/03(火) 18:07:28 ]
煽ってる奴っていつもここに粘着してるクズだからスルーしなさい



41 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:08:19 ]
>39
>38=ttp://msdn.microsoft.com/en-us/library/ms644975(VS.85).aspx

42 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:39:51 ]
文字列を仮想キーコードに変換できる?
"A" → VK_A
"Shift" → VK_SHIFT
みたいなの

43 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:44:12 ]
要するにメッセージフックではメッセージをカットすることはできないと?
ではメッセージフックの他にメッセージをカットする方法ありますか?

44 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 18:50:01 ]
>>32
前スレかどっかで答えたのじゃだめなん?
CreateProcessで立ち上げたアプリのHINSTANCEから
メインウィンドウのハンドルを取得して
そのウィンドウハンドルを自分のウィンドウの子ウィンドウにするように
ウィンドウスタイル変更したらいいんじゃね?



45 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:17:57 ]
>>43
たしか、消し去りたいときはWM_NULLにしてしまうのではなかったかな?

46 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:25:20 ]
×メッセージフックではメッセージをカットすることはできない
△WH_CALLWNDPROCではではメッセージをカットすることはできない

47 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 19:38:47 ]
変更可能なのWH_MESSAGEだけじゃね。
あとローレベルフック。

48 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 20:43:04 ]
LoadImageでL"image\\hoge.png"を渡して
PNGの画像を読み込もうとすると0が返ってくるです。
どうすればいいですか?

49 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:02:54 ]
>>48
まずはMSDNを読め。

50 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:07:48 ]
LoadImageっていつの間にかpngに対応したのか
今日はじめて知ったよ



51 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:10:01 ]
>42
無理じゃないかなー。情報減ってるんで。

52 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:15:57 ]
ヘッダ読んで置換

53 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:35:10 ]
PNG扱いたいなら素直にGDI+使っとけ、で終了。

54 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:49:09 ]
OleLoadPictureFileは対応しているように見えるな。
ファイル名をVARIANT型で渡す必要があるので多少面倒だが。
……PGNという画像形式は流石に無いと信じたい。

55 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 21:56:19 ]
PGNなんて画像形式聞いた事無いんだが

56 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:11:10 ]
libpng

57 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:23:42 ]
PGNも知らないとかいつの時代の人間だよ……

58 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:27:48 ]
くやしい!…PGN…PGNッ

59 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:31:35 ]
クリムゾンAPI

60 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:36:11 ]
>>51
そうかーありがとう



61 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 22:40:06 ]
DIBをStretchDIBits関数で描画したときに
YSrcを0,Xsrcを0以外に設定すると
Yの座標がおかしくなるんだけど,そういうもの?

62 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:18:41 ]
PGMじゃなくてPGNか。。

63 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:23:05 ]
ピグモンカワユス

64 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:24:35 ]
libpngは正直言ってお勧めしない

65 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:30:48 ]
>文字列を仮想キーコードに変換できる?
変換テーブルを自前で用意すりゃいいじゃん。

66 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 00:33:38 ]
日本語文字は?

67 名前:名無し募集中。。。 mailto:sage [2009/02/04(水) 00:46:40 ]
俺ならSusie Plugin

68 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 01:02:45 ]
pngのデコードくらい自分で書けばいい

69 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 01:09:28 ]
イヤイヤマテマテ
BMPならともかく、PNGとかTIFFは相当手間かかると思うんだぜ

70 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 01:18:13 ]
特に、TIFFは色々対応し始めたらきりがないからな。
画像のデコード自体が目的なら止めはしないけど。



71 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 02:23:53 ]
>>65
めんどいやん・・

72 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 02:36:15 ]
MapVirtualKeyしてGetKeyNameTextして一致するやつ探せばええやん
PrtScrとかキーボードによって表記違うやつがどうなるか知らんけど

73 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 02:39:42 ]
>>69
ガンマとか色空間を捨てればpngは比較的簡単だぞ

74 名前:デフォルトの名無しさん [2009/02/04(水) 07:27:16 ]
pngはlibpngあっただろ

75 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 07:28:23 ]
>>64に戻る

!!↓png以外の話題でお願いします!!

76 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 09:12:57 ]
ヘッダからVK〜を検索して引けばいい

77 名前:デフォルトの名無しさん [2009/02/04(水) 11:30:51 ]
>>48
www.geocities.jp/katayama_hirofumi_mz/win32/loadpng.htm

78 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 11:39:46 ]
CLRのPanelコンポーネントに相当するものは何でしょうか?

79 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 11:57:15 ]
static


80 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 13:27:05 ]
空のウィンドウ作って包含されるウィンドウの親をそいつにすればいい



81 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 13:28:04 ]
ちょっと何言ってるかわかんないです

82 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 14:24:10 ]
それは君の頭が悪いからです

83 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 14:26:08 ]
どのアプリでもそうなんだが、AdobeReaderからのテキストのドロップが
変になるのはどっちが悪いんですか?

84 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 14:27:20 ]
AbodeReaberが悪い

85 名前:78 mailto:sage [2009/02/04(水) 14:29:45 ]
>>80
モードレスダイアログ作ってダイアログプロシージャ作って(ry
ってやつですか?

86 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 15:04:25 ]
StretchDIBitsで縮小したDIBビットデータにアクセスする方法を教えてください

87 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 15:21:33 ]
GetDIBits

88 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:12:44 ]
>>87
ありがとうございます。
とりあえずやってみたのですがうまくいきません。。
dwBufferに入ってるデータを縮小してまたdwBufferに戻したいのですが・・・

1440x1080のDIBデータ(dwBuffer)を1280x720に縮小
dwBuffer = new DWORD[1440*1080];
dwBufferにデータをぶち込み
BITMAPINFO bi;
::ZeroMemory( &bi, sizeof( BITMAPINFO ) );
bi.bmiHeader.biSize = sizeof( BITMAPINFOHEADER );
bi.bmiHeader.biWidth = 1440;
bi.bmiHeader.biHeight = 1080;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biBitCount = 32;
bi.bmiHeader.biCompression = BI_RGB;
HDC hdc = ::CreateCompatibleDC( NULL );
HBITMAP hb = ::CreateCompatibleBitmap( NULL, 1280, 720 );
::SelectObject( hdc, hb );
::StretchDIBits( hdc, 0, 0, 1280, 720, 0, 0, 1440, 1080, dwBuffer, &bi, DIB_RGB_COLORS, SRCCOPY );
::GetDIBits( hdc, hb, 0, 720, dwBuffer, &bi, DIB_RGB_COLORS );

突っ込み所満載かもしれませんがどこが悪いのでしょうか・・・

89 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:41:38 ]
GetLastErrorぐらいやってから聞いてるんだろうな?

90 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:47:36 ]
>>89
知らないならレスしないで下さい。ウザイだけです。



91 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:49:17 ]
>>90
知らないならレスしないで下さい。ウザイだけです。

92 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:52:57 ]
CreateCompatibleBitmapにNULL渡したら失敗するだろそりゃ

93 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 16:53:43 ]
何とCompatible(互換)なんだろうな

94 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:05:26 ]
なにをするためにベタDIBデータ欲してるのか分からんが、多分そもそもCreateCompatibleBitmapじゃなくてCreateDIBSectionじゃないとダメな気がするなあ。

95 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 17:07:02 ]
DC

96 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:17:10 ]
皆さん色々ご指摘ありがとうございます。

>>94
DWORD *buf;
HDC hdc = ::CreateCompatibleDC( NULL );
HBITMAP hb = ::CreateDIBSection( hdc, &bi, DIB_RGB_COLORS, (void**)&buf, NULL, 0 );
::SelectObject( hdc, hb );
::StretchDIBits( hdc, 0, 0, 1280, 720, 0, 0, 1440, 1080, dwBuffer, &bi, DIB_RGB_COLORS, SRCCOPY );
::GetDIBits( hdc, hb, 0, 720, dwBuffer, &bi, DIB_RGB_COLORS );
で試してみると先ほどは真っ黒だったのが今度は画面半分下から縮小された画像が表示されました。
(CreateCompatibleBitmapでhdcを指定しても真っ黒でした)
ちなみに、StretchDIBitsはhdcにイメージのハンドルを与えてやると
イメージには正常に縮小された画像が表示されていましたので
怪しい部分はそれ以外だとおもいますが・・・
また何処が間違っているかご指摘お願いします

97 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:19:44 ]
bi.bmiHeader.biWidth = 1280;
bi.bmiHeader.biHeight = 720;
::GetDIBits( hdc, hb, 0, 720, dwBuffer, &bi, DIB_RGB_COLORS );

98 名前:86 mailto:sage [2009/02/04(水) 18:24:11 ]
>>97
早速のお答え有難うございます!!
確かにそれでちゃんと画面の上から書き出しましたが・・・
今度は画像が崩れてしまいました><
でもこれで更に近いところまでくることがでいました!

99 名前:86 mailto:sage [2009/02/04(水) 18:32:43 ]
すみません。
bi.bmiHeader.biWidth = 1280;
bi.bmiHeader.biHeight = 720;
をしたから画像がくずれたのではなくてその前から崩れた状態でした。。
くずれた状態というのは同じパターンを繰り返してるみたいな・・・
StretchDIBits自体はうまくいってるので他に怪しい所は
CreateDIBSectionとGetDIBitsでしょうか?

100 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 18:35:05 ]
AABB   AB
AABB -> CD
CCDD
CCDD

AABB   AB■■
AABB -> CD■■
CCDD  ■■■■
CCDD  ■■■■

ビットマップごと小さくしたいのか、ビットマップの大きさは同じで
画像だけ小さくしたいのか



101 名前:86 mailto:sage [2009/02/04(水) 18:39:19 ]
くぁwせdrftgyふじこl;p

>>97
神様ありがとう!
おもいっきり勘違いしてましたすみません><
GetDIBitsの直前でそれをやればよかったんですね。
ちゃんと表示できました。ありがとうございます。

>>100
いやすみません。
1440x1080のDIBデータだけある状態で
それを1280x720のサイズのDIBデータにしたかったんです><

102 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:16:17 ]
DWORD の次は QWORD かと思ってたら
DWORDLONG という訳の分からないものだった衝撃

103 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:50:18 ]
日記はblogに書いてろクズ

104 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 21:52:46 ]
       ハ,,ハ
 ((⊂ ヽ ( ゚ω゚ )  / ⊃))
   | L |   '⌒V /
    ヽ,_,/   ヽ_./  お断りします
  __,,/,,   i       お断りします
 (  _     |
  \\_  ̄`'\ \
   ヽ )     > )
   (_/´    / /
         ( ヽ
         ヽ_)

105 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:41:00 ]
basetsd.hに無いDWORDLONGなど邪道。
DWORDの次はDWORD64と決まっておるのだ。

106 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:49:00 ]
タスクトレイにアイコン表示させて右クリックで操作したいんですが
google検索したところ、case WM_TRAYICONMESSAGE: case WM_TRAYICONMESSAGE:
を使うサンプルが出てきました。
Borland C++ Compiler 5.5 で書いてるんですが未定義のシンボルと出て使えませんでした。
Borland C++ Compiler 5.5 での書き方って別にあるんですか?

107 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:51:37 ]
>>106
勝手に定義してるだけだろ。

108 名前:デフォルトの名無しさん [2009/02/04(水) 22:52:35 ]
Vista SP1,VC++2008 Win32Projectです。
ウィンドウにツールチップを設定したいのですがうまくいきません。
GetLastErrorは0でした。
主なコードは以下の通りです。

case WM_CREATE:
GetClientRect(hWnd, &ClientRect);
InitCommonControls();
hTool = CreateWindowEx
(
WS_EX_LEFT, TOOLTIPS_CLASS, NULL, TTS_ALWAYSTIP, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hWnd, NULL, hInst, NULL
);
ToolInfo.cbSize = sizeof(TOOLINFO);
ToolInfo.hinst = NULL;
ToolInfo.hwnd = hWnd;
ToolInfo.lParam = NULL;
ToolInfo.lpReserved = NULL;
ToolInfo.lpszText = L"テスト";
ToolInfo.rect = ClientRect;
ToolInfo.uFlags = TTF_SUBCLASS;
ToolInfo.uId = 1;
SendMessage(hTool, TTM_ADDTOOL, NULL, (LPARAM)&ToolInfo);

SendMessageの戻り値がFALSEでうまくいきません。
どこが悪いのでしょうか?
VC++を始めて2ヶ月ちょっとの超初心者なので、調べ方が悪いのか解決方法が分りません。
誰かわかる人がいたら教えてください。お願いします。

109 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:53:10 ]
WM_USER+1

110 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 22:56:00 ]
>>61を知ってる人いません?



111 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:02:03 ]
>>107>>109
ああ、わかりました。ありがとうございました。

112 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:02:45 ]
>未定義のシンボルと出て使えませんでした。
アプリケーション定義のメッセージだもの、自分で定義しなきゃ使えんよ。

#define WM_TRAYICONMESSAGE WM_APP + 1

とでもしておけ。

113 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:11:44 ]
>>105
なんで QWORD にしないんだろうか・・・
5ワードと区別がつかないからか?

114 名前:名無し募集中。。。 mailto:sage [2009/02/04(水) 23:19:45 ]
QUAD?

115 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:21:37 ]
クアッドワード

116 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:34:58 ]
自分でQWORDって定義して使ってたけど
WORDLONGなんてあったんだね

117 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:45:52 ]
もうUINT64でいいよ。

118 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:49:18 ]
>>110
DIBは通常BottomToTopなので……まあ、色々あるんだわ、これが。
とりあえず、昔のDIB系のAPI使うより、
CreateDIBSectionから始めたほうが幸せになれる、とだけは言っとく。

119 名前:デフォルトの名無しさん mailto:sage [2009/02/04(水) 23:52:40 ]
>>118
thx,幸せになるため変更してみる

120 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 00:44:50 ]
ウィンドウを毎秒50フレームで再描画してるんですが、ダブルバッファリングしてもどうしてもちらつきが多いです。
GDIとかで描いてる以上チラつきをDirectX並に減らすことは無理です?



121 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 01:04:28 ]
ちらついてる原因にもよるが。WM_ERASEBKGNDは潰しとけとかその辺は押さえてるか?

122 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 03:49:12 ]
セカンダリモニタの開始座標位置(左上の座標)を得るにはどうすればいいですか?
そのままプライマリの右に設定されてるときはプライマリの解像度を得たら分かるけど
左,上,下とか微妙にずらして斜め上とかにも設定できちゃうので困ってます。

123 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 04:10:47 ]
GetMonitorInfo

124 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 09:32:41 ]
>>120
GDIで50fpsとか、馬鹿ですか?

125 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:27:25 ]
指定した日が祝日かどうかを調べるAPIを教えてくださいよ

126 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:33:08 ]
>>125
面白くない。
もっとがんばりましょう。

127 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:35:49 ]
>>125
ワロタwww腹痛ぇwwwww

128 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:50:56 ]
BOOL WINAPI GetHoliday( time_t /* time */)
{
return TRUE;
}

129 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:52:07 ]
せめてイスラム歴の正月かどうかを調べるAPIぐらいの事言えよ

130 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 14:52:57 ]
ほら、滑ったw



131 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 15:20:09 ]
掲示板に僅か50秒で滑ったなんてレスするお前が滑ってるよ

132 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 15:31:08 ]
どうでもいいよ

133 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 15:35:23 ]
>>129>>131
笑わせてもらいました。

134 名前:129 mailto:sage [2009/02/05(木) 16:02:30 ]
ありがとうございます。

135 名前:129 mailto:sage [2009/02/05(木) 16:05:19 ]
騙り乙

136 名前:129 mailto:sage [2009/02/05(木) 16:05:24 ]
やめて下さい。知らないならレスしないで下さい。消えてください。

137 名前:129 mailto:sage [2009/02/05(木) 16:11:16 ]
暇人だな

138 名前:129 ◆TTLQTUMllo mailto:sage [2009/02/05(木) 16:15:00 ]
騙りが多いので酉つけました

139 名前:129 mailto:sage [2009/02/05(木) 16:20:27 ]
先に偽者にトリップ付けられたしw

140 名前:129 ◆TTLQTUMllo mailto:sage [2009/02/05(木) 16:40:54 ]
>>139
偽物乙



141 名前:129 mailto:sage [2009/02/05(木) 16:42:15 ]
しつこいw

142 名前:129 mailto:sage [2009/02/05(木) 16:43:08 ]
僕がイスラム歴の正月かどうかを調べるAPIです。

143 名前:129 ◆TTLQTUMllo mailto:sage [2009/02/05(木) 16:44:41 ]
>>140
オマエが偽者だろw

144 名前:129 ◆TTLQTUMllo mailto:sage [2009/02/05(木) 16:46:31 ]
>>143
お前こそ偽者だろw

145 名前:129 ◆TTLQTUMllo mailto:sage [2009/02/05(木) 16:48:14 ]
基本的に俺が本物

146 名前:129 mailto:sage [2009/02/05(木) 16:49:20 ]
トリップ付けて荒らしてる奴は偽者

147 名前:129 ◆TTLQTUMllo mailto:sage [2009/02/05(木) 16:49:25 ]
ここまで、全部オレの自演

148 名前:129 mailto:sage [2009/02/05(木) 16:50:21 ]
もうイスラム歴の正月かどうかを調べるAPIって言わないからこれくらいで勘弁してくれよ

149 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 16:55:09 ]
ここまで俺の自演

150 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 16:57:05 ]
2010年の春分の日が決まったばかりだというのに



151 名前:129 mailto:sage [2009/02/05(木) 16:59:24 ]
せめてイスラム歴の正月かどうかを調べるAPIぐらいの事言えよw

152 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 17:08:32 ]
EM_GETLINE
The copied line does not contain a terminating null character.

これ作ったやつマジで氏ね!!

153 名前:デフォルトの名無しさん [2009/02/05(木) 17:31:32 ]
>>129
荒らすの止めろクズが

154 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 18:45:30 ]
129大杉ワロタ

155 名前:デフォルトの名無しさん [2009/02/05(木) 18:48:40 ]
>>129が悪い

156 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:19:32 ]
>>129の人気に嫉妬

157 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:22:21 ]
ここまでスベったネタを誤魔化すための自演

158 名前:デフォルトの名無しさん [2009/02/05(木) 19:24:48 ]
>>129-133
ここら辺が見所ですかね。

159 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:56:03 ]
>>152
Win16時代のAPIに今更ケチ付けてもねえ

160 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:56:39 ]
まあぶっちゃけると>>129-133は全て>>129の自演だけどな



161 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 19:58:25 ]
その辺にしてくれねーかな

162 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:03:42 ]
>>159
理由になってない。

163 名前:129 ◆kwai5Y6kNk mailto:sage [2009/02/05(木) 20:04:37 ]
あぁ

164 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 20:14:37 ]
Win16時代は速度優先のため大多数のAPIは終端にNULLをつけなかった。
さすがにプログラマーからの苦情が多かったためWin32ではNULLをつけるよう仕様変更した。
しかしEM_GETLINEなど一部は後方互換性を重視して、敢えてNULLをつけていない。

少しはググレカス

165 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:46:07 ]
最近始めましたが、サンプルを見ると以下のように先頭にスコープ解決演算子を
付けているのが多いのですが、付けると何か良いことがあるのでしょうか?
::MessageBox(〜);

166 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:47:14 ]
インテリセンスが効くとか。

167 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 22:47:55 ]
MFCやATLのライブラリで同名を用いていることが多いので、それと区別したい場合に用いる。
または、インテリセンスを効かせようとした跡。

168 名前:165 mailto:sage [2009/02/05(木) 23:07:03 ]
>>166, 167
どうもありがとうございました。

169 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:10:56 ]
>>121やったつもりが1文字間違っててうまく潰せてなかったみたいでした。
すっごい綺麗にいけました!ありがとうございます。

170 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:31:07 ]
PostMessageにてboost::shared_ptrの値を渡すのは危険でしょうか?
Post先で参照後に勝手に消えてくれるので便利な気がするのですが。



171 名前:デフォルトの名無しさん mailto:sage [2009/02/05(木) 23:39:07 ]
PostMessage は非同期だから
Post先にメッセージが届く前に shared_ptr が破棄されているかもしれないので危険

172 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:02:24 ]
わかりました。やめときます。素直にSendMessageTimeout使います。

173 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:02:46 ]
119だが,DIBSectionに変更して幸せになれました.

174 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:10:23 ]
幸せになるくらいなら猿でもなれる
問題は幸せにしてやれるかどうかだ

175 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:28:01 ]
深イイ話くらい中身のない言葉っすね

176 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 00:30:00 ]
おっぱいがあれば幸せ

177 名前:デフォルトの名無しさん [2009/02/06(金) 10:18:26 ]
>>129だけど何か質問ある?

178 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 10:20:14 ]
ない

179 名前:86 [2009/02/06(金) 10:57:15 ]
またまたすみませんが・・・
数日前色々教えてもらって縮小はうまくいったのですが今度は拡大がうまくいきません><
1440x1080を1980x1080に拡大
dwBuffer = new DWORD[2048*2048];
dwBufferにデータをぶち込み
BITMAPINFO bi;
::ZeroMemory( &bi, sizeof( BITMAPINFO ) );
bi.bmiHeader.biSize = sizeof( BITMAPINFOHEADER );
bi.bmiHeader.biWidth = 1440;
bi.bmiHeader.biHeight = 1080;
bi.bmiHeader.biPlanes = 1;
bi.bmiHeader.biBitCount = 32;
bi.bmiHeader.biCompression = BI_RGB;
DWORD *buf;
HDC hdc = ::CreateCompatibleDC( NULL );
HBITMAP hb = ::CreateDIBSection( hdc, &bi, DIB_RGB_COLORS, (void**)&buf, NULL, 0 );
::SelectObject( hdc, hb );
::StretchDIBits( hdc, 0, 0, 1980, 1080, 0, 0, 1440, 1080, dwBuffer, &bi, DIB_RGB_COLORS, SRCCOPY );
bi.bmiHeader.biWidth = 1980;
bi.bmiHeader.biHeight = 1080;
::GetDIBits( hdc, hb, 0, 1980, dwBuffer, &bi, DIB_RGB_COLORS );

出力サイズの1280x720を1980x1080に変更しただけなんですが・・・
どうも出力先のサイズが1440で切られてるみたいです。。。
何処が間違ってますか?

180 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 11:00:35 ]
ダメだこりゃ
次いってみよー



181 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 11:03:50 ]
>>179
CreateDIBSectionを元画像と同じ大きさで呼んでるからだろ
てか、お前プログラムやめたら?

182 名前:86 [2009/02/06(金) 11:17:21 ]
あ、ちなみに
::GetDIBits( hdc, hb, 0, 1980, dwBuffer, &bi, DIB_RGB_COLORS );
1980じゃなくて1080ですね。

>>181
そう思って出力先と同じサイズにしたんですが画像がくずれてしまって・・・


183 名前:86 [2009/02/06(金) 11:21:32 ]
あ、ごめんなさい。激しくわかりました。
僕が馬鹿でした。
言葉は悪いけど>>181が参考になりました。

184 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 11:43:14 ]
どうでもいい茶々を入れる
1980×1080は1920×1080では?

185 名前:86 mailto:sage [2009/02/06(金) 12:03:21 ]
>>184
いや1980なんですよねこれが。

おかげで拡大もばっちりいったのですが・・・
グラデーションがかかった画像を縮小すると汚さが目立ちます
オリジナルの1440x1080を1280x720にすると目立つとおもって
1440x1080→1980x1080→1280x720でやっても一緒だったのですが
同じ流れでC++BuilderのTBitmapで行うと綺麗に行くのですが
これなんかパラ指定があるんでしょうか?

ちなみにStretchDIBitsのHDCにTBitmapのハンドルを与えてから拡大縮小してます

186 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 12:05:51 ]
大元が勘違いして変な数値になったのかなw

187 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 12:07:08 ]
>>185
SetStretchBltModeじゃね?

188 名前:86 mailto:sage [2009/02/06(金) 12:56:26 ]
>>187
ありがとうございます。
ちょっと試してみます!

189 名前:86 mailto:sage [2009/02/06(金) 13:37:18 ]
くぁwせdrftgyふじこlp;

>>187
神様ありがとう!
すげえええええええええです!
一発で綺麗に縮小できました!!
ありがとうありがとう

190 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 13:54:30 ]
NG推奨:86、129



191 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:29:07 ]
bf.BlendOp = AC_SRC_OVER;
bf.BlendFlags = 0;
bf.AlphaFormat = true;
bf.SourceConstantAlpha = 255;

AlphaBlend関数でBLENDFUNCTIONを上記のように設定すると、画像の完全な透明以外の部分はちゃんと
半透明に表示されますが、完全に透明な部分は何故か白で塗りつぶされてしまいます。これはどう設定しても無理ですか?

192 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:45:06 ]
AlphaBlendは糞
計算式がおかしいのは有名な話

193 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 15:48:33 ]
AlphaBlendに関してはちょっと前にも同じ言い争いがあったので
反論したい人は穏便にお願いします

Win32API質問箱 Build73
ttp://pc11.2ch.net/test/read.cgi/tech/1227934931/23-76

参考

194 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:34:34 ]
過去ログは見れない人も多いから、煽りじゃないなら参考としては不適切。

195 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 16:44:55 ]
>>193見ました。
MSは糞。

196 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 18:41:13 ]
>>174
自分が幸せになれんのに
他人が幸せになれるわけないじゃないか・・・・
チクショー

197 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 19:28:25 ]
DDCAPS_ALPHAの対応マダァ-? (・∀・ )っ/凵⌒☆チンチン

198 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:27:36 ]
他の人が作成したdllを呼び出すプログラムを作成したんですが
あるdllをLoadLibrary()したらエラーリターンしてエラーコードが998(ERROR_NOACCESS)でした。
なのでdll作成側にDllMainのDLL_PROCESS_ATTACHでメモリ破壊してると、このエラーコードになると報告したのですが
こっちでも呼び出し元に不備がないか調査して日々報告するように言われております。
呼び出し元の不備でこのエラーになるケースはどのようなものが考えらるでしょうか?
動作環境はXPのSP2です
エラーになるdllがなにしてるかは不明で、そのdllをもらうこともできません

199 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:28:30 ]
WH_GETMESSAGEにてのメッセージフックでWM_MOVEを検知して移動先の座標を得ようと
しているんですが、pt.x,pt.yにでたらめな座標が入ってしまいます。何故でしょうか?

LRESULT CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam){
    CWPSTRUCT *cwps;
    cwps=(CWPSTRUCT *)lParam;
    if(nCode<0)
        return CallNextHookEx(hMyHook,nCode,wParam,lParam);;
    if( nCode == HC_ACTION ){
        if(cwps->message==WM_MOVE){
            POINT pt;
            pt.x=LOWORD(cwps->lParam);
            pt.y=HIWORD(cwps->lParam);
        }
    }
    return CallNextHookEx(hMyHook,nCode,wParam,lParam);
}

あと同じようなので
if(cwps->message==WM_WINDOWPOSCHANGED)LPWINDOWPOS pos=(LPWINDOWPOS)cwps->lParam;
もpos->xとかにもでたらめな数字入ってしまう。
MSDNも何度も調べたし、色々な組み合わせを何時間もトライ&エラー繰り返してたんですが
やっぱり分かりません。教えてください

200 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:31:28 ]
>>198
LoadLibraryするだけの単純なプログラムを書いて渡すっていうのじゃダメなの?
それともそれだけでは再現しないの?



201 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:35:32 ]
>>199
マウス座標が cwps->hwnd が示す
ウィンドウ相対だからとか?


202 名前:デフォルトの名無しさん [2009/02/06(金) 20:37:21 ]
符号なしの値を符号付きの変数に代入してこけてるとか?

203 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 20:45:14 ]
>>199
WH_GETMESSAGEでかけたフックのコールバックのlParamはMSG構造体なんだが

204 名前:198 mailto:sage [2009/02/06(金) 20:47:13 ]
>>200
>>198です。
エラーが発生する条件が不明でエラーの発生頻度もあまり多くないんです
LoadLibrary()するだけのプログラムでも環境しだいでは再現するかもしれないんですが
再現するかもしれないから、ちょっと試してみてください、って言える関係じゃないんです


205 名前:デフォルトの名無しさん [2009/02/06(金) 20:50:20 ]
どっかに不定が紛れ込んでいるに1000ペリカ

206 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:45:10 ]
>>202
ありがとうございます。まったくその通りでした。
MSDNに「1 個の 構造体へのポインタ」としか書いてなかったからCWPSTRUCTでいいと思ってた
今後のために教えてください。そういうのってどこに書いてます?
でも、これだとWM_MOVEが引っかからないから他のフックタイプ使うべきなのね

207 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 21:48:01 ]
>>206
msdn.microsoft.com/en-us/library/ms644981(VS.85).aspx

確かに日本語ソースには「1 個の 構造体へのポインタを指定します。」とあるのなww
こやつめハハハ

208 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:05:21 ]
英語の方には書いてあったのね。楽だからついつい日本語の方ばっかり見ちゃうけど
やっぱり英語の方も見たほうがいいですね

209 名前:デフォルトの名無しさん mailto:sage [2009/02/06(金) 22:17:05 ]
WH_CBTにしてHCBT_MOVESIZEを見るようにしたらいけました。
このまま教えてもらわなかったらまた何時間も悩み続けるところだったよ。ありがとう

210 名前:デフォルトの名無しさん [2009/02/07(土) 01:18:37 ]
なるほど
ありがとうございました



211 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 04:18:34 ]
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

212 名前:211 mailto:sage [2009/02/07(土) 04:20:05 ]
あ…スマン…Janeの裏技とか言うのみて試してたら書き込まれた(;´Д`)

213 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 07:18:02 ]

 ヾヽヽ
 (´▽`) おっさんチュンチュン
  ミ_ノ
  ″″

214 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 07:28:09 ]
複雑だと思うならつかわなきゃいいんじゃねーの?
なんでアホはあるもの全部使わなきゃ気がすまねーの?

215 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 08:58:01 ]
Before:
ttp://admins.fxdm.net/cmsware/resource/img/h000/h22/img200608041621414.jpg

After:
ttp://art3.photozou.jp/pub/921/204921/photo/14320292.png

216 名前:デフォルトの名無しさん [2009/02/07(土) 09:27:24 ]
質問です。
(A)
ツリービューで↓を書くと
   TreeView_InsertItem(HWND hwndTV, LPTVINSERTSTRUCT lpis);
BorlandC++ が
   ”警告 W8019 : コードは効果を持たない”と
と吐くのですが、どういう意味なんでしょうか?

(B) また、
   SendMessage(hwndPB, PBM_SETRANGE, 0, MAKELPARAM(0,files_read));
と書くと
   ”警告 W8084 : 優先順位を明確にするためにカッコの使用を推奨”
と吐きます。どう括弧をつければいいのでしょうか?

217 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 09:46:22 ]
ttp://docs.codegear.com/docs/radstudio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/devwin32/wrnnoop_xml.html
ttp://docs.codegear.com/docs/radstudio/radstudio2007/RS2007_helpupdates/HUpdate4/JA/html/devwin32/compile_wrnprecedence_xml.html

あとはbccスレで聞け

218 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 10:48:40 ]
まさか
TreeView_InsertItem(HWND hwndTV, LPTVINSERTSTRUCT lpis);

TreeView_InsertItem(hwndTV, lpis);
ってことじゃないよなw

219 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 11:27:08 ]
GetDC BeginText
で得たhdcの値は変わることってありますか?
あるとするならどんな時に変わりますか?

220 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 11:31:57 ]
確保しっぱなしにしようとしてるのかもしれんが
その使い方が間違い



221 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 12:37:17 ]
普通のウィンドウだと、DCはGetDC等が呼ばれた時にシステムから提供される。
毎回設定がリセットされるのはそのため。
Windows9x系だと、スレッド辺り5つまでしか貰えないから持ちっぱなしはあり得ない。
だがNT系なら多少メモリ喰う程度だけで済むので、今の時代なら構わないのかも。
まあ、CS_OWNDC付けとけばReleaseDCしても設定内容は維持されるから、
そっちを検討した方が良いとは思う。

222 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 13:18:49 ]
MSDNの日本語版は構造体のページが作成されてないからリンクも貼れない
記述文の中の構造体名ごと一斉に消しちゃってるというやっつけ仕事
文中に「構造体」とあればその前に構造体名が省略されてると見るのが吉

223 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 14:26:04 ]
ひでーぶー

224 名前:216 mailto:sage [2009/02/07(土) 14:51:27 ]
>>217 サンクスコ。
>>218 ? 返り値を受け取ってないってことですか? SORTの属性付けてるので返り血は捨ててます。

225 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:04:40 ]
hwndTVとlpisが実引数なら型の記述は要らないってことだろ

226 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:05:11 ]
関数の呼び出しと宣言がごっちゃになってるんじゃないかと言ってるんじゃ?

227 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:11:54 ]
ありがとうございました

228 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 15:54:59 ]
>>221
お!だからいちいち開放しなきゃいけなかったのか
今更だけど理解した

229 名前:デフォルトの名無しさん [2009/02/07(土) 18:11:32 ]
あるチェックボックスをチェックを入れたら

別のチェックボックスのチェックを外すにはどうしたらいいですか?


230 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 18:14:29 ]
BN_CLICKEDでも見張っててうんちゃらかんちゃらする



231 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 18:17:47 ]
すなおにラジオボタンを使う

232 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:09:57 ]
全部のチェックが外れた状態も欲しいんです
(常に1個または0個選択)

233 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:14:41 ]
ラジオボタンをチェックする関数の引数に、
チェックするボタンの ID として -1 を指定すれば
全部チェックが外れるよ。

234 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 19:34:45 ]
ラジオボタンにしてdisable的な項目を増やせば解決するような単純なものではないって事かな

235 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 20:22:02 ]
押してチェックを外したいのであれば、
ラジオボタンに期待されてるような処理ではないので
チェックボックスにした方がいいかもね。
チェックボックスにも CheckRadioButton 関数って使えるんだっけ?

236 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 20:47:33 ]
リストボックスのアイテムをダブルクリックするには PostMessage を使うの?

237 名前:デフォルトの名無しさん mailto:sage [2009/02/07(土) 21:39:59 ]
いまさらだけどWindows7βで遊んだ。
Windows7のエクスプローラ、
とうとうSysListView32じゃなくなったな

238 名前:デフォルトの名無しさん [2009/02/08(日) 00:34:39 ]
アイコンセットは少し気を遣うな
匹数に幼虫異です


239 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 03:32:09 ]
>>237
な、なんだってー

240 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 08:40:47 ]
>>236
Mouseを使います。



241 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 10:35:06 ]
ありがとうございました

242 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:04:06 ]
>>237
タスクバーがTabやToolbarじゃなくなってたのは確認した
そろそろカスタマイズ系の常駐ソフトもお終いか?

243 名前:デフォルトの名無しさん [2009/02/08(日) 14:30:08 ]
char tt[256];
byteOutPut=(BYTE)GetPrivateProfileInt(_T("test"),_T("valuets"),1,_T("test.ini"));

wsprintf(tt,"%d",byteOutPut);
MessageBox(NULL,tt,"チェック",MB_RTLREADING);

test.ini
[test]
valuets = 7

としても、値が常に「1」がかえってしまいます。
test.iniに記載されている「7」を取得したいんですが・・。

244 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:33:19 ]
文字コードは〜?

245 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:34:14 ]
>>243
説明は省くけどtest.iniをフルパス(C:\...\test.ini)で指定しても駄目かな?

246 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 14:36:14 ]
>>243

ttp://msdn.microsoft.com/en-us/library/ms724345(VS.85).aspx

>If this parameter does not contain a full path to the file,
>the system searches for the file in the Windows directory.

247 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 15:36:42 ]
>>243
こういう奴は大人しくレジストリ使っとけばいいのに……

248 名前:デフォルトの名無しさん [2009/02/08(日) 19:50:43 ]
文字コードは、マルチバイト文字セットを使用する にしています。
フルパスで指定してもダメです。
_Tをなくしてもダメです。。

249 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:09:46 ]
>>246に答え書いてるのに……
>>245が解決法書いてるのに……
>>247が代替案まで出してるのに……

なにこの子?


250 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:11:54 ]
もうだめだこのスレ



251 名前:デフォルトの名無しさん [2009/02/08(日) 20:14:11 ]
自己解決しますた。

252 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 20:37:04 ]
どの辺りが自己解決なのか…?
事故解決の変換ミス?

253 名前:デフォルトの名無しさん [2009/02/08(日) 21:37:27 ]
あなた方では役に立たないので他のサイトで教えてもらいました。

254 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 21:41:03 ]
どの辺りが自己解決なのか…?

255 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 21:54:20 ]
×自己で解決
○自己を解決

256 名前:デフォルトの名無しさん [2009/02/08(日) 22:19:40 ]
つーか性格悪い奴が多すぎだろ、ここ

257 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:33:13 ]
>>256
例えばどのレス?
多すぎってからには10レスくらいすぐに安価出せるな?

258 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:42:45 ]
このスレ限定でIDが欲しくなるな

259 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:45:14 ]
ネットワークの回線の速度って
どう検出するのでしょうか?

ラン内・ネットのロード量など。
また、よく、ダウンロードのインジケータなど
不思議に感じます。

APIで解決できるのでしょうか?

260 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 22:59:47 ]
>>257
お前のような奴の事だよ。



261 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:03:01 ]
>>259
速度=単位時間に流れるデータ量

262 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:05:10 ]
>>259
パフォーマンスカウンタ

カテゴリ名:Network Interface
インスタンス名:有効なNIC
カウンタ名:Received Bytes/Sec

とか見れば

263 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:15:58 ]
>>259
APIにこだわるなら
IP Helper Functions
あたり

264 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:17:17 ]
>>260
予想の範疇のレスすんな。
そう突っ込まれるだろうから10レスくらい挙げてみろって加えたんだよ。

265 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:36:28 ]
GetProcessHeap()で取得したヒープハンドルを利用していたら
いきなりハンドルの値が変わってHeapAllocで落ちました。


この現象に心当たりある方はいませんか?


266 名前:265 mailto:sage [2009/02/08(日) 23:41:06 ]
値を初期化すべきところに初期化してませんでした。

にらんだとおりオーバーフローだったみたいです

267 名前:デフォルトの名無しさん mailto:sage [2009/02/08(日) 23:45:34 ]
>>261
>>262
>>263

ありがとうございます。

268 名前:デフォルトの名無しさん [2009/02/09(月) 10:20:41 ]
Windowsで一番簡単なディザ処理を行うにはどうすればいいですか?

269 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 11:03:21 ]
何に対して?

270 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 11:23:02 ]
向かいのタバコ屋の婆さんに対して



271 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 11:39:38 ]
タバコ屋の婆ちゃん逃げて! ><;

272 名前:デフォルトの名無しさん [2009/02/09(月) 11:46:03 ]
32ビットビットマップに対して1ビット、4ビット、8ビットカラーへのディザ処理。

273 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 12:03:55 ]
悪いけどそんなもんない

274 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 12:06:06 ]
settimer が killtimer されたのってどーやって検知すればいいですか?

275 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 12:07:39 ]
もう一個タイマー作ってイベントが発生し続けてるかどうか見てれば

276 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 12:54:49 ]
>>275
ありがとうございました。

277 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 13:01:46 ]
・・・KillTimer するのは自分じゃないのか?


278 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 13:05:49 ]
そういう突っ込みは、野暮というものだよ

279 名前:デフォルトの名無しさん [2009/02/09(月) 22:02:44 ]
→ int i,j;
の様に「→」が表示されるようになってしまったんですが
これをなおすにはどうしたらいいですか?「→」は青っぽいやじるしです



280 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:05:35 ]
>>279
そのコードを書いているソフトのスレで聞きなさい。



281 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:06:09 ]
エスパーさん、出番ですよ

282 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:06:36 ]
不定値のまま色使ってるとか。

283 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:12:06 ]
>>279
→は改行文字が文字化けしてるんだろうね
だとしたら文字コードの問題

284 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:14:48 ]
そのエディタではタブが矢印で表示されるんだろ
>>280だな

285 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 22:46:47 ]
釣れた釣れた

286 名前:デフォルトの名無しさん [2009/02/09(月) 23:31:53 ]
どんなネタでも必ず釣れるスレですね

287 名前:デフォルトの名無しさん mailto:sage [2009/02/09(月) 23:36:18 ]
そ・・・壮大な釣りだった。。。

288 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 01:09:47 ]
簡単に釣れるので、釣りの練習に使うといいよ
特に初心者の釣り師にオススメ

289 名前:デフォルトの名無しさん [2009/02/10(火) 01:13:17 ]
ここで釣り釣り言ってるのは小学生かなんか?
釣りの意味分かってないんだろうね

「ぷろぐらみんぐ」は小学生にはまだむずかしいから、おとなしくおうちでかめんらいだーごっこやってな?

290 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 01:41:24 ]
ここまで俺の自演



291 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 02:52:50 ]
すっかりキチガイ坊やになつかれたな
どんな糞にも丁寧に罵声を浴びせた結果がこれだ

292 名前:デフォルトの名無しさん [2009/02/10(火) 03:42:52 ]
宿題スレでもマルチしてた香具師だな

293 名前:デフォルトの名無しさん [2009/02/10(火) 10:21:37 ]
WM_CHAR他WM_IME_CHARから送られてきた文字をUTF-8に変換して保持し、ウィンドウ内に描画するには
WM_CHAR.WM_IME_CHAR

文字コード変換

☆配列等へ保持

☆から文字コード変換

ウィンドウ内に描画
しか方法はありませんか?

294 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 10:25:42 ]
WM_CHAR時にはバッファに保存とInvalidateだけして後でまとめて描画だな

295 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 12:45:22 ]
>>293
9xを捨ててUNICODEにしても良ければ、
WM_IMECHAR無視してWM_CHAR 1つでも困らないと思う。

もっと言えば、中でUTF-8にして保持するなら、WM_CHARよりも
UTF-32でやってくるWM_UNICHAR 1つのほうがやりやすいはず。ただしXPからだけど。
それとIMM API関数などを使って変換文字列を取得するのとどっちがいいかは微妙なとこだが。

296 名前:デフォルトの名無しさん [2009/02/10(火) 14:17:39 ]
MDIアプリで、フォーカスを持ってる子ウィンドウのハンドルを取得するにはどうすればよいでしょうか。
GetActiveWindow()、GetForegroundWindow()的なのがあるとありがたいのですが…

297 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:23:54 ]
>>296
WM_MDIGETACTIVE

298 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:32:53 ]
>>297
どうもです。
ついでにお願いします。そのメッセージの結果をAPIで取りたいのですがどう呼べばよいでしょうか。
プラグイン的なものからなのでAPIを呼ぶしかできないのです。

299 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:34:25 ]
>>298
SendMessage

300 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:49:38 ]
釣れた釣れた



301 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 14:54:00 ]

       ___   ━┓
      / ―  \  ┏┛
     /  (●)  \ヽ ・
   /   (⌒  (●) /
   /      ̄ヽ__) /
 /´     ___/
 |        \  
 |        |


302 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 18:38:01 ]
>>296
HWND hActiveWnd;
// hClient を Client Window Handle として、
hActiveWnd = (HWND)SendMessage( hClient, WM_MDIGETACTIVE, 0, 0);
で、自分は使っている。hClient の意味が分からないなら、「猫でも
分かるプログラミング」を見るように。コードは古いが、意味合いは
分かるでしょう。

303 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 18:54:26 ]
>送られてきた文字をUTF-8に変換して保持し
どーしても保持する必要があるなら仕方ないが、オレなら必要になった時にUTF-8に変換する

304 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 22:57:38 ]
UpdateLayeredWindowでULW_ALPHAとULW_COLORKEYを同時に使うって出来ないんですか?
それがダメでも、ピクセル単位で完全透過部分と半透過部分を共存させた1つのウィンドウを作る方法ってありますか?

305 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:03:46 ]
>>304
何のためにHDCとBLENDFUNCTIONが引数にあるのかを考えれば判るだろ

306 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:28:51 ]
>>304
アルファ値が0のピクセルはリージョンのように完全に透過するが。

307 名前:デフォルトの名無しさん mailto:sage [2009/02/10(火) 23:36:00 ]
>>108が分る人いませんか?

308 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:06:04 ]
いません

309 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 00:59:16 ]
>>306例えば完全透過がそのあるビットマップがh_bmpに入ってるとして、どう呼び出したらうまく透過するのか
見せてもらえませんか?家のではどう見ても透過してないんですが・・・
ちなみにこうやってます。

WS_EX_LAYEREDスタイルを追加;
HDC hdc = ::GetDC(NULL);
my_hdc bmpdc = ビットマップのDC;
POINT zero = {0,0};
SIZE bsize = {画像の幅,高さ};
DWORD flags = ULW_COLORKEY|ULW_ALPHA;
COLORREF colkey = RGB(255,255,255);

BLENDFUNCTION bf;
bf.BlendOp = AC_SRC_OVER;
bf.BlendFlags = 0;
bf.AlphaFormat = AC_SRC_ALPHA;
bf.SourceConstantAlpha = 255;

::UpdateLayeredWindow(ウィンドウハンドル,hdc,ウィンドウの左上のPOINT*,&bsize,bmpdc,&zero,colkey,&bf,flags);
::ReleaseDC(NULL,hdc);


310 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 01:25:29 ]
WS_EX_LAYERED | WS_EX_TRANSPARENT



311 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 01:28:28 ]
>>309
UpdateLayeredWindow は obsolete
SetLayeredWindowAttributes を使おう


312 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 01:30:21 ]
ttp://azumaya.s101.xrea.com/wiki/index.php?%B3%D0%BD%F1%2FWin32%20API%2F%A5%EC%A5%A4%A5%E4%A1%BC%A5%C9%A5%A6%A5%A3%A5%F3%A5%C9%A5%A6%A4%F2%BA%EE%A4%EB
ttp://msdn.microsoft.com/ja-jp/library/ms997507.aspx

313 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 01:45:21 ]
> UpdateLayeredWindow は obsolete
(゚Д゚)ハァ?

314 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 01:58:38 ]
>>108
それっぽい情報というとこれくらいかなあ
social.msdn.microsoft.com/Forums/en-US/vclanguage/thread/5cc9a772-5174-4180-a1ca-173dc81886d9/

結局原因はよくわからないみたいだけど、
もし、同じ現象なら、文字セットをマルチバイト文字セットにするか、
targetver.h 内の _WIN32_WINNT の定義を

#define _WIN32_WINNT 0x0500

にしてやると回避できるみたいだけど

315 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 02:04:06 ]
とある知らないEXEがUNICODEビルドなのかANSIビルドなのか区別する方法ってありますか?

316 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 02:13:49 ]
インポートしてるAPIを見ればある程度推測できる

317 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 02:21:56 ]
そんなもん区別して何がしたいんだ

318 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 02:33:22 ]
あとはIsWindowUnicodeとか、EXE(モジュール)単位ではないけど。

319 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 02:54:12 ]
APIにしまつ

320 名前:デフォルトの名無しさん [2009/02/11(水) 08:55:22 ]
>>315
メモ帳で開いて確認しる
終わったら上書き保存をお忘れなく\(^o^)/



321 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 10:17:23 ]
>>315
最近、ANSIビルドのソフトをいじって、キー入力・表示・コピペはUnicodeに
対応させたものを作った。Unicodeなファイル名は扱えないが、これって
何ビルドだろうね。

322 名前:デフォルトの名無しさん [2009/02/11(水) 10:29:00 ]
>>321
ANSIビルドでかまわない。
__wargv

323 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 10:37:04 ]
>>310それはマウスヒットテストに使うのでは?
>>311実際にどうなります?画像に合わせてウィンドウの形を変えたいんですが・・・?
>>312それらはもう見てその通りにやってるつもりだったんですが・・・うーん


324 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 10:52:54 ]
>その通りにやってるつもりだったんですが

「プログラムは、間違いなく自分がコーディングした通りに動く。
 しかし、それが自分が想定した通りであるとは限らない。」

325 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 10:54:00 ]
>>322
それが判断基準?
あ、もちろんIsWindowUnicodeはTRUE返すから。じゃないとWM_CHARで
Unicodeが受け取れない。APIもA/W両方インポートしてる。(が、Win9xでも動く。)

326 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 11:11:56 ]
>>324そんなこと言うくらいなら指摘して欲しいんですが?

327 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 11:23:27 ]
うぜぇ

328 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 11:54:21 ]
やってるつもりだったんならそれでいいじゃん。解決

329 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 13:37:29 ]
どう考えてもここは324の方がウザイと思うが
お前それ言いたかっただけちゃうんかと

330 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 13:46:05 ]
反応してる奴もうざい



331 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 14:32:40 ]
>>329
例の基地害だろ、もう構うな

332 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 14:48:10 ]
>>325
ハイブリッド、でいいんじゃね?まあ俺もそういうの作ったことあるけど。

例えばXPのEditコントロールはANSIでもUnicodeの動作をするバグがあるので
Win9xでも動くように作ろうとすると、全体的にはANSIだけど部分的にA/W切り替える必要性が出てくるんだよな。

というかこのバグを無視してANSIアプリのくせにVisualStyle対応してるソフトが多すぎ。

333 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:01:14 ]
>>332
バグについて詳しく

334 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:14:02 ]
ググレカス

335 名前:カイロ mailto:sage [2009/02/11(水) 16:24:29 ]
シリアル通信の受信プログラムがうまく出来ません。。

<やりたいこと>
COM3:送信側で、Tera Termで、文字を送信
COM4:受信側 コマンドプロンプトで、作ったプログラムを動かして受信し、受信した文字を表示する。

<受信プログラムの流れ>
@COM4をオープン
A通信設定
B受信するまで、待つ
C受信したら、文字を表示。

●受信するまで、待つことが出来ず、フフフ・・・といった文字列が
 表示されてしまいます。
 どうしたら、受信するまで待つように出来るのでしょうか?


336 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 16:57:44 ]
>>335
フフフ・・・

337 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:00:41 ]
これはウゼェwww

338 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:00:44 ]
待つって日本語で書かれても。
コードさらせないのか、待ってるとこだけでも。
フフフ・・はデバッグ環境での未初期化のバッファ

339 名前:カイロ mailto:sage [2009/02/11(水) 17:11:00 ]
返事ありがとうございます。

以下コードの抜粋です。
ReadFileの第5引数(最後の引数)にNULLを入れると、受信するまで待つんだと思ったんですが、
送信していないのに、受信した文字列が表示されます。

☆ポートを開いているところ
int errorCode;
HANDLE handle;

handle = CreateFile("COM4", // ファイル名: COMポート名を指定
GENERIC_READ | GENERIC_WRITE, // アクセスモード: 読み書き
0, // 共有モード: 共有しない
NULL, // セキュリティ記述子: 取得したハンドルを子プロセスへ継承しない
OPEN_EXISTING, // 作成方法: ファイルを開いたときに指定したファイルが存在していなければエラーとする
FILE_FLAG_OVERLAPPED, // 非同期 I/O を許す//☆同期にしてみるFILE_ATTRIBUTE_NORMAL, // ファイル属性: 特に指定しない
NULL // テンプレートファイルのハンドル: 特に指定しない
);

☆通信設定するところ。(省略)

☆受信するところ。
char data[14];
DWORD dwRead;
DWORD dwErrors;
COMSTAT ComStat;

ClearCommError(handle, &dwErrors, &ComStat);
ReadFile(handle, data, sizeof(data), &dwRead, NULL);
printf("受信した文字列%s", &data);

340 名前:デフォルトの名無しさん [2009/02/11(水) 17:12:28 ]
IPアドレスコントロールから値を取得するには
どんな関数を使えばいいですか?IPは入力欄が4つあるので、どうやって
取得するんですか?



341 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:15:12 ]
>>339
dwReadを確認してないみたいだけど?

342 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:15:33 ]
>>339
エラーチェックぐらいしろよ

343 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:15:50 ]
IPM_GETADDRESSとか無かったっけ?

344 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:16:14 ]
343は>>340

345 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:17:12 ]
>>340
Win32 and COM Development - User Interface
- Windows Controls - Control Library
とりあえず、WindowsSDKのドキュメントの上記辺りを一通り目を通しておけ。

346 名前:デフォルトの名無しさん [2009/02/11(水) 17:20:44 ]
>>345
面倒だから教えてよ

347 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:22:54 ]
やだよばか

348 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:26:28 ]
>>339
待機とは関係ないんだが
FILE_FLAG_OVERLAPPEDを指定したら
ReadFileの最後はNULLじゃ駄目なんじゃないか

349 名前:カイロ mailto:sage [2009/02/11(水) 17:28:52 ]
>341
>dwReadを確認してないみたいだけど?

dwReadは、読み取ったバイト数が入るんですよね。
どうやって確認すればいいのでしょうか?
聞いてばかりで、すみません。


350 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:29:01 ]
関係なくはないけどな



351 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:29:35 ]
>>348が真理

つかGetLastErrorぐらいしろ

352 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:32:44 ]
つーかウォッチ式に @err,hr を入れとけ

353 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 17:38:10 ]
>>349
dwReadが0だったらどうなると思う?

354 名前:カイロ mailto:sage [2009/02/11(水) 17:46:09 ]
>>348
>待機とは関係ないんだが
>FILE_FLAG_OVERLAPPEDを指定したら
>ReadFileの最後はNULLじゃ駄目なんじゃないか
調べてみたら、通信プログラムでは、
FILE_FLAG_OVERLAPPEDではなく、
属性なしの FILE_ATTRIBUTE_NORMALを指定するのが正しいようですね。

>>353
>dwReadが0だったらどうなると思う?

0だったら、まだ、受信してない状態ってことですか?

355 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 18:01:04 ]
FILE_FLAG_OVERLAPPEDはブロッキングしたくない時に使うんだよ。

356 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 18:08:16 ]
>>354
dataを1バイトにして、dwReadが0以外のときに表示するようにしてみたら?

357 名前:カイロ mailto:sage [2009/02/11(水) 18:49:06 ]
>>356
>dataを1バイトにして、dwReadが0以外のときに表示するようにしてみたら?

やってみました。
以下、修正後のソースの一部です。

☆ポートを開いているところ
handle = CreateFile("COM4", // ファイル名: COMポート名を指定
GENERIC_READ | GENERIC_WRITE, // アクセスモード: 読み書き
0, // 共有モード: 共有しない
NULL, // セキュリティ記述子: 取得したハンドルを子プロセスへ継承しない
OPEN_EXISTING, // 作成方法: ファイルを開いたときに指定したファイルが存在していなければエラーとする
FILE_ATTRIBUTE_NORMAL, // ファイル属性: 特に指定しない
NULL // テンプレートファイルのハンドル: 特に指定しない
);
☆受信するところ。
char data[1];
DWORD dwRead;
DWORD dwErrors;
COMSTAT ComStat;

while(1) {
ClearCommError(handle, &dwErrors, &ComStat);
ReadFile(handle, data, sizeof(data), &dwRead, NULL);
if(dwRead != 0) {
printf("%c", data[0]);
}
}

358 名前:カイロ mailto:sage [2009/02/11(水) 18:49:39 ]
続き・・・

なんとか、待機するところまでは、うまくいきました。
Tera Termで入力した文字が、表示されました。
ありがとうございます。

ですが、表示された文字が文字化けしていて、以下のような感じで、表示されます。
解決方法をどなたか、教えてください。

Bャツ・・・・・


359 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 18:55:07 ]
ClearCommErrorって毎回チェックしないといけないんだっけ?

360 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 18:57:56 ]
マルチバイト文字を送信してるように見える



361 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 18:59:05 ]
ヌルターミネートしてないからだろ
受信したバイトの最後にゼロ入れとけ

362 名前:360 mailto:sage [2009/02/11(水) 19:01:20 ]
マルチバイト文字じゃなくて、シングルバイトじゃない文字

363 名前:カイロ mailto:sage [2009/02/11(水) 19:15:15 ]
自己解決いたしました!!

テラターム側のボーレートの値が受信プログラムで設定した値と違っていたので、
文字化けしていたようです。

同じ値にしたら、ちゃんとした文字が出るようになりました!!

これで、すべて解決しました!!

みなさま、どうもありがとうございました。

数ヶ月前から、出来ずに困っていたのですが、
なんとか、動くものが出来ました。

よかったです。(TーT)

364 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 19:16:25 ]
まあオメデトウ
そして死ね

365 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 19:22:47 ]
>>364
死ねは酷くね?
せめて成仏しろとか永眠しなさいと地獄に落ちろ、位にしといてやれよ。


366 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 19:34:18 ]
フフフ…

367 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 19:34:44 ]
ウッゼ

368 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 19:49:07 ]
釣れた釣れた

369 名前:デフォルトの名無しさん [2009/02/11(水) 19:56:01 ]
>>314
ありがとうございます!、出来ました。

#define _WIN32_WINNT 0x0500に変更で解決しました。

本当にありがとうございました。

370 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:27:20 ]
相手のボーレート自動で判断してあわせてくれるシリアル通信ソフトあるけど
合ってるかどうかってどうやって判断してるんだろう



371 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 20:31:04 ]
IME の前後参照変換に対応するため、WM_IME_REQUEST の IMR_DOCUMENTFEED を
拾うルーチンを書きました。が、XP や Vista + ATOK なら期待通り動作するのですが、
Vista + MS-IME では全く機能しません。

TSF 絡みっぽいところまでは推測がつくのですが、その先がさっぱりです。
そのあたりの仕組みについて記述している資料があれば、教えてください。

372 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:11:37 ]
>>370
分からんけど。
例えば、相手が送ってくるデータが分かっていれば、
ボーレートを色々変えてみて正しく読めるのを探すとか?


373 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:17:10 ]
>>314>>369
それで解決したなら、後からメンバが増えたせいだな。
msdn.microsoft.com/en-us/library/bb760256.aspx
_WIN32_NTが0x501以上だとlpReservedメンバが追加されるが、
これはNULLじゃないといけないと書いてある。
ところが、108のコードではそれが欠けていたのでうまくいかなかった。

まあ、良くある話だ。_WIN32_NTほかバージョン定義をきちんと定義して自己防衛するしかない。

374 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:20:27 ]
NULLじゃないといけないReservedなメンバをわざわざ追加して互換性無くすとか
MSが何をしたいのかさっぱり分からん

375 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:34:31 ]
>>371
IMR_DOCUMENTFEED固有の話はないけれど。
d.hatena.ne.jp/NyaRuRu/20070308
d.hatena.ne.jp/NyaRuRu/20070309

376 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 21:53:34 ]
>>373
そんな単純な話でもない
もともと>>314の参照先はちゃんと0初期化してて
マルチバイトでは動作するのに、Unicode では
動作しないって質問だし、自分でやってみても
うまくいかなかった
OSはVistaなのでOS側の問題とかはないはずなんだけど

377 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:03:12 ]
>>375
ありがとうございます。なるほど、テキストストアっぽい単語が関係ありそうですね。

378 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:07:09 ]
>>376
うおすまん、リンク先まで読んでいなかった。

379 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:13:08 ]
>>376
manifestが無くてcomctl32.dll ver5系を使ってたってオチだろ
多分ver5系はcbSizeにTOOLINFO::lpReservedのサイズを含めてはいけない

380 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:30:45 ]
>>379
まさにそのとおりでした
なんか昨日から気になってたんだけど、ようやくスッキリした
ありがとう




381 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:33:44 ]
結局、TOOLINFO::lpReservedってそういう時わざと失敗させるために、構造体のサイズを変えるべく入れただけのような気がしてきた
NULL以外の適当な値を入れても動くみたいだし

382 名前:デフォルトの名無しさん [2009/02/11(水) 22:37:47 ]
D:→E:のようにドライブレターを変更するにはどうしたらいいんでしょうか?


383 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:41:18 ]
コマンドプロンプトで

D:\> E:

と入力する。

384 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:42:30 ]
つーか板違い

385 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:42:46 ]
>>382
char path[MAX_PATH] = "D:\dokoka";
char drive[MAX_PATH];
char dir[MAX_PATH];
char name[MAX_PATH];
char exp[MAX_PATH];

_splitpath( path, drive, dir, name, exp);
drive[0] = 'E';
_makepath( path, drive, dir, name, exp);


ネタなので反論は許さない。

386 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:47:14 ]
>>385
expって何だよw
エクスプローラの略か?

387 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:53:01 ]
>>386
うっせw 突っ込むなって言ったろw pじゃなくてtだったよ、うろ覚えすぎたw
よく考えたら拡張子だからエクステンションの略なのか。

388 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:55:09 ]
>>382
MSDN Library

Win32 and COM Development

System Services

File Services

File Systems

Volume Management

Volume Management Reference

Volume Management Functions
にお探しのAPIがあると思うよ

389 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 22:59:42 ]
たまに優しい人が居るスレだ

390 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:18:48 ]
たまに知らないならレスしないでください。ウザイだけですな人がいるスレだ



391 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:20:41 ]
>>385
_splitpath, _makepath
こんなのあったんか、知らんかったぽ

392 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:22:54 ]
これでもイジワルしたつもりなんだ、優しい人なもんか
まず質問者が最低限自分で調べてから質問する人かどうかを見極めるために
>ドライブレターを変更するにはどうしたらいいんでしょうか?
という質問から「api ドライブレターを変更」でググったら上位3件(1件重複あり)全てにAPI名が出てきたんだぞ
ここでイジワル心が働いた

今度はそのAPI名でまたググって英語版MSDN Libraryに飛んで
ツリー形式になってる項目を一つ一つコピペしてrootへ向かってだなあ・・・

393 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:28:16 ]
>>392
お前のツンデレっぷりに感動したので、付き合ってください

394 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:29:41 ]
      ハ,,ハ
     ( ゚ω゚ )  お断りします
    /    \
  ((⊂  )   ノ\つ))
     (_⌒ヽ
      ヽ ヘ }
 ε≡Ξ ノノ `J


395 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:35:54 ]
Linuxユーザーがググった知識を披露するスレになり下がってる。

396 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:38:05 ]
定型レスしかできないクソバカに比べれば100倍マシだからいいよ

397 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:38:09 ]
まともな答えになっていれば別に何ユーザでも構わないでしょ。
ツンデレならWine使いかもしれないし。

398 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:40:35 ]
>>397
>ツンデレならWine使いかもしれないし
詳しく

399 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:47:00 ]
>>398
LinuxでWinAPIを実装してWindowsアプリケーションが動くというやつ。
使ったことないから出来は知らないけど。

400 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:54:22 ]
>>397
使ったこともないのにググった知識で答えるのは無駄だろ。
質問者が一番知識があるという状態をよく目にする。



401 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:56:16 ]
知識のある人が知らないフリして質問して、知ったかで回答する馬鹿を突付いて遊んでるんだよ

402 名前:デフォルトの名無しさん mailto:sage [2009/02/11(水) 23:59:28 ]
母無職、弟ニート、俺派遣
3人家族月10万(家賃含)でなんとかしてるけどなあウチは
残りは昔の生活費の借金返済に充てて

403 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 00:01:46 ]
母無職、弟無職、俺無職
3人家族月0.1万(家賃含)でなんとかしてるけどなあウチは
残りは昔の生活費の借金返済に充てて

404 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 00:02:46 ]
ここまで人工無能アイちゃんのレス

405 名前:402 mailto:sage [2009/02/12(木) 00:02:55 ]
ごめんなさい

406 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 00:35:45 ]
>>402
うわあ…

407 名前:108 [2009/02/12(木) 00:43:34 ]
>>379
出力ウィンドウのデバック表示で

C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_5.82.6001.18000_none_886786f450a74a05\comctl32.dll' を読み込みました
C:\Windows\winsxs\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.6001.18000_none_5cdbaa5a083979cc\comctl32.dll' を読み込みました

と2種類のバージョンのcomctl32.dllを読み込んだように表示されているんですが、これは関係あるのでしょうか?
最近Win32APIプログラミング始めた素人なので変な質問だったらすいません。

408 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:03:24 ]
>>407
Side-by-Sideでググっとけ


てか、内部or外部のXMLで、同名DLLのバージョンを切り替えるなんてアホだろ
誰が考えたんだよ全く・・・

409 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:26:10 ]
>>407
CommonControl 6.0を使用するための具体的な対処ということなら、
以下をstdafx.hあたりに記載しとけばいけるばず

#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")


410 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 01:38:01 ]
>>408
ちなみにお前だったらどういうのがいいと思うのか聞きたい。



411 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 02:05:23 ]
directxみたいにファイル名を変えとけばいいんじゃねーの?

412 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 10:45:47 ]
dll heaven状態ですね

413 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 13:07:34 ]
Direct2DとかWriteってDirectXになるの?
それともWIn32API?

414 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 14:51:53 ]
1GBくらいのメモリを確保する場合はnewとGlobalAllocどちらがいいですか?
またその他に適した関数はありますか?

415 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 14:57:59 ]
VirtualAlloc

416 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:01:48 ]
>>415
ありがとうございます〜
さっそく調べてみます!

417 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:02:22 ]
そんなに独り占めしてずるいわあ

418 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:24:14 ]
1Gバイトのシリコンメモリ領域を明示的に確保し
それにスワップ無しでランダムアクセスするようなアプリを
動作させることが出来る商用パッケージOSは今のところ無い。
(近い将来出るかも知れないが)

Windowsの場合VirtualAllocとか使って、シリコンメモリに
領域を確保したつもりになってももどうせディスクにスワップ
されるので、1Gバイトのファイルを作成し、それにランダム
アクセスするコードと速度面では大差が無い。

419 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:37:20 ]
>>418
使ったこと無いから詳しくは知らんがAWE APIは?

420 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:45:32 ]
>>418
そうなんですか><


すみません。GlobalAllocもVirtualAllocも500Mくらいを超えたらエラーになってしまうんですが
一度に取ってもダメで500Mを2回に分けても2回目のVirtualAllocでエラーになります。

ちなみにVirtualAllocで1回で取れる最大サイズってなんぼなんですか?



421 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 15:54:29 ]
>>418
本当に欲しければ、VirtualLockがあるよ。Unix系だってmlockがあるだろう。
果たして使いこなせるかどうかはともかく。

422 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 16:27:46 ]
>>420
環境によるし、その時のアドレス空間の空き状況にもよる。

423 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 16:35:09 ]
>>422
そうみたいですね・・・
いちおうメモリは4GBあるのですが、1MBづつ取ると970MBの所でエラーになりました
タスクマネージャの利用可能メモリは3.4GBあるのですが
2GBくらい取れないんですか?

424 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 16:37:58 ]
なるべくプログラム開始直後にVirtualAllocで予約かけたら、
もうちょっと大きくとれないか?

425 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 16:38:48 ]
>>423
環境によるし、その時のアドレス空間の空き状況にもよる。

426 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 17:03:25 ]
特に設定しなければ、ユーザーエリアは最大2GB
そこをプログラムで使用中の上、連続したエリアを取りたいんだろうからそんなもんだな

427 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 18:40:03 ]
PCに1GBのメモリを確保できるだけの余力がなかったりして。:-)

428 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 18:43:40 ]
そんな大量に物理メモリを取りたければドライバ書けばいいだろ

429 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 18:45:44 ]
つーか64bitに移行しろ

430 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 18:57:29 ]
顧客にそんなこと言えますか? ねぇ、あなた



431 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:00:54 ]
こんなとこでそんな質問すんなよ

432 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:02:39 ]
メモリが少ない別PCの方が多く確保できた
これタスクマネージャのコミットチャージの最大値までしか取れないみたいですが
物理メモリが少ない方のPCはここの値がちょっと大きいのですが
これってどこで調整できますか?まあAPIとは関係ないっぽい話になっちゃいますが・・・

433 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:03:09 ]
32APIスレなのに64ビットに移行しろとか言わなくても

434 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:06:56 ]
>>429みたいな馬鹿はスルーしましょう。

435 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:12:15 ]
>>432
強制的にramdiskとしてメインメモリより1GB搾取して
それをおれおれ専用メモリにしたら?
でも、どうやればよいのしらん

436 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:14:13 ]
うんこしてきます。
しばらくお待ちください

437 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:15:02 ]
>432
合計はスワップファイル+物理メモリでしょ。

438 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:21:46 ]
>>413
そもそもDirectX自体、広義にはWin32 APIの一部分ということはともかく、
DirectXの一部みたいだけど、GDI/GDI+の置き換えとか言っているし、
どっちで質問するのがふさわしいかまだよく分かんないね。

439 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:31:47 ]
ここ → DirectXスレへ行け
DirectXスレ → Win32APIスレへ行け
って言われるんですね、分かります

440 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:34:34 ]
だったらDirect2Dのスレでも立てればいいだけだろうが



441 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:38:20 ]
実装はCOMだろうしここになるとは思えない。

442 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:38:32 ]
>>440
スレ立てできないくせにレスしないで下さい。ウザいだけです。

443 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 19:42:29 ]
>>441
(´,_ゝ`)プッ

444 名前:108 mailto:sage [2009/02/12(木) 20:16:11 ]
>>408
ありがとうございます、勉強になりました。
>>409
ありがとうございます。
CommonControl 6.0を使用出来るようになりました。

445 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:21:02 ]
ま、Win7のリボンコントロールもCOMだからな

てかIUIFrameworkでググっても日本語のサイトが1件も出ねぇw

446 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:26:02 ]
これをwin32の質問と見なして良いかどうか微妙ですが、
考えていると脳みそが沸騰して訳が分からなくなったので質問させていただきます。
質問
・VISTAのAero ON でウィンドウを作成する前にそのサイズを知る方法。
開発環境 SDK/VC++ 2005

問題の解決には、通常GetSystemMetrics()かAdjustWindowRectEx()を使うと思います。
ところが、VISTAのAeroが有効なときは奇妙な現象が起こります。
そこで実験してみました。
dwStyleA = (WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_CLIPCHILDREN);
dwStyleB = dwStyleA | WS_THICKFRAME;
の設定で、100,100 (800x600)をAdjustWindowRectEx すると
dwStyleA: 97,76 806x627
border w,h: 3,3
dwStyleB: 92,71 816x637
border w,h: 8,8
という結果が返ります。各borderは、次の式で求めています。
横は(ウィンドウ幅-クライアント幅)/2
縦は(ウィンドウ高-クライアント高-::GetSystemMetrics(SM_CYSMCAPTION))/2
一見して当たり前で、作成されたウィンドウをキャプチャしてサイズを確認した
ところ、確かに2000/Xp/VISTA aero off の時は見た目もこの通りになります。
しかし、VISTAのaeroが有効な環境では、dwStyleAでもdwStyleBでも、
見た目はdwStyleBと同じ(!)になるのです。
しかも、GetSystemMetricsもAdjustWindowRectExもAero on/off で同じ値を返します。
もちろん作成後に GetWindowRect()した場合、AdjustWindowRectEx()と
整合性のある値(つまり見た目とは違った値)を返します。
これがAPIのバグでないとしたら、dwm.exeが独自にウィンドウを装飾している
ものと思われますが、その値を取得する方法がわかりません。

1.Aero on時に見た目通りのウィンドウサイズを取得する方法は?
2.Aero on時のウィンドウサイズは常に thickframeと同じと見なしていいの?
3.2が良いとした場合、Aero on を手軽に知る方法は?

447 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:54:38 ]
Theme系のAPIを使えば、もう少しまともな値が得られそうな予感。
あまりに面倒臭そうで試す気にもならんが。

ちなみに、AdjustWindowRectExは
必要なクライアント領域を確保するのに指定すべきウィンドウサイズを求めるAPIだから、
その周りのフレームについては何の保証もしていないと思う。

448 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 20:57:20 ]
そもそも2000/XPでもメニューが2段以上になる場合とかは想定してくれないからな

449 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:06:00 ]
>>447
theme系APIというと、uxtheme.dll のあれですね?
チェックしてみます。ありがとうございました。

例えば>>446は、800x600のクライアント領域を指定して、AdjustWindowRect を呼び出すことで
作成されるはずのウィンドウの大きさを取得してチェックしたものですが、問題なのはそれが見た目の
サイズと異なってしまうことなのです。
見た目だけの問題なので、だれも気にしないのかな・・・

450 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 21:56:02 ]
 小学生の頃
 必死で買ったエロ本を母親に捨てられた
 恥ずかしいから怒る事もできず
 できるだけゴミ箱から回収するように頑張っていた
 しかし母親が何度も何度も捨てるもんだから
 ついに親父がブチ切れた

 切れた親父は母親に
 「これは!この本は!」とエロ本をゴミ箱からすくい上げ
 見せながら力説してくれた
 「これはな!このくらいの年のガキにとっちゃ!
 金払えば買えるもんじゃないんだ!お前はなぜこれを捨てるんだ!」

 俺は感動した

 親父はエロ本を俺に投げつけて
 「もう絶対捨てさせないし隠す必要もないからな!」
 と言ってくれた

 俺は泣いた

 でも次の日にエロ本は親父の部屋にあった
 何か複雑な気持ちだった





451 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:13:29 ]
>>445
COMだとネイティブだけでホストするのめっさめんどくせぇじゃねぇか・・・

452 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:29:42 ]
んなこたーない
WindowProc書いてSendMessage連発する方が面倒

453 名前:デフォルトの名無しさん [2009/02/12(木) 22:30:29 ]
>>450
今日VIPでできたコピペじゃないか

454 名前:デフォルトの名無しさん mailto:sage [2009/02/12(木) 22:33:19 ]
>>450=>>453
はいはい良かったね
さっさとVIPへ帰れ

455 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:29:23 ]
くけいと読むんだ、たんけいかと思ってた

456 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:37:53 ]
あるある。

457 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 00:55:29 ]
方形

458 名前:デフォルトの名無しさん mailto:sage [2009/02/13(金) 17:59:29 ]
くけいでよかったんだ、ホッとした

459 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 16:14:29 ]
チョコ欲しくない?

460 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 16:19:57 ]
くれ



461 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 16:42:54 ]
チンコほしい

462 名前:デフォルトの名無しさん mailto:sage [2009/02/14(土) 17:20:30 ]
ひぃ

463 名前:デフォルトの名無しさん [2009/02/15(日) 00:25:44 ]
いま、注目されている劇団のHPの中身。
circus.main.jp/next.html

2ちゃんにもスレがあるよ。
gimpo.2ch.net/test/read.cgi/drama/1098881123/901-1000

464 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 01:47:50 ]
お前ら出番だ
pc11.2ch.net/test/read.cgi/tech/1234626656/

465 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 05:07:59 ]
マルチ乙

466 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 05:30:18 ]
MAXIMIZEBOXを表示し、且つキャプションバーダブルクリックでの動作をすり替えるにはどうすればいいのでしょうか?
WM_SYSCOMMANDのように最大化動作の直前に知りたいのですが.

467 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 07:03:31 ]
WM_SYSCOMMAND

468 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 09:28:32 ]
独自のキャプションバーを作る

469 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 11:44:50 ]
msg が WM_SYSCOMMAND かつ wParam が 0xf012 の時に摩り替える処理を行って
かつ DefWindowProc にデフォルト処理をさせなけりゃおk

470 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 11:47:26 ]
間違えた
×0xF012
○0xF032



471 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 12:10:42 ]
///<summary>
/// Sent when form maximizes because of doubcle click on caption
///</summary>
SC_MAXIMIZE2 = 0xF032,

これですね、ありがとうございます。
膨大で、やりたいことやろうと思うとすごく難しい

472 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 12:18:12 ]
/// Sent when form maximizes because of doubcle click on caption
///</summary>
SC_RESTORE2 = 0xF122,

これも忘れずになー

473 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 12:20:52 ]
ダブルクリックの時だけ動作を変えるってどういう状況?
ウィンドウシェードでも実装したいのか?

474 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 12:30:37 ]
DirectXプログラムで最大化ボタンでフルスクリーンにしようかと.

475 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 12:35:30 ]
昔の俺と同じ動機だ
当時最大化ボタンにマウスカーソルを合わせた時ツールチップで「フルスクリーン」と出るようにもしたかったけどそっちは挫折した

476 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 12:41:13 ]
こうやって先人がレールを敷いてくれると助かりますよ、本当に。

477 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 13:32:27 ]
>>474
普通にWM_SYSCOMMAND/SC_MAXIMIZEが飛んでくるのを処理すればいいし自ら答え出してるだろ

で、SC_MAXIMIZE2とか定義してる馬鹿がいるみたいだけどMSDNをしっかり読もうな

> In WM_SYSCOMMAND messages, the four low-order bits of the wParam parameter are used internally by the system.
> To obtain the correct result when testing the value of wParam, an application must combine the value 0xFFF0
> with the wParam value by using the bitwise AND operator.

478 名前:デフォルトの名無しさん mailto:sage [2009/02/15(日) 13:54:51 ]
>>477
最大化ボタンもタイトルバーダブルクリックもmsgはWM_SYSCOMMANDだが
前者のwParamはSC_MAXIMIZE(0xF030)で後者のwParamは0xF032なんだよ

479 名前:478 mailto:sage [2009/02/15(日) 13:57:20 ]
MSDNも>>477のレスもしっかり読んでなくてごめんなさい






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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