■過去ログ置き場に戻る■ 1- 次250 最新50


[memo] "9999999999_00.html#R20" という感じで、URLの最後に "#RレスNo" を追加すると幸せになれます。

Win32API質問箱 Build42
1 名前:デフォルトの名無しさん :2006/04/14(金) 06:09:09
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-5くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn.microsoft.com)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvencedWindowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで。


2 名前:デフォルトの名無しさん :2006/04/14(金) 06:10:05
-過去スレ
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/

3 名前:デフォルトの名無しさん :2006/04/14(金) 06:10:41
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/
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
ttp://pc5.2ch.net/tech/kako/1044/10449/1044929160.html
ttp://pc5.2ch.net/tech/kako/1040/10409/1040964626.html
ttp://pc3.2ch.net/tech/kako/1036/10366/1036654893.html
ttp://pc3.2ch.net/tech/kako/1032/10325/1032548635.html
ttp://pc3.2ch.net/tech/kako/1028/10285/1028580373.html
ttp://pc3.2ch.net/tech/kako/1023/10233/1023361418.html
ttp://pc.2ch.net/tech/kako/1017/10170/1017072275.html
ttp://pc.2ch.net/tech/kako/1006/10067/1006783012.html
ttp://pc.2ch.net/tech/kako/991/991576947.html

4 名前:デフォルトの名無しさん :2006/04/14(金) 06:12:01
- MSDN Online
http://www.microsoft.com/japan/msdn/
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Platform SDK Update
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
- Google
http://www.google.com/

- Windows® Server 2003 SP1 Platform SDK Full Download
http://www.microsoft.com/downloads/details.aspx?familyid=EBA0128F-A770-45F1-86F3-7AB010B398A3&displaylang=en
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/XPSP2FULLInstall.htm
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm

- Win32 API入門
http://wisdom.sakura.ne.jp/system/winapi/
- Win32 プログラミング入門
http://www7.plala.or.jp/keny01/windows/win32/

- 書籍
Advanced Windows
http://www.amazon.co.jp/exec/obidos/ASIN/4756138055

-おまけ
dat落ちしている過去スレが見れるかも。Build19が見たい人、余裕のある人は●でも買ってやってくれ。
http://makimo.to/cgi-bin/search/search.cgi?q=Win32API&andor=AND&sf=2&H=&view=table&shw=&D=tech


5 名前:デフォルトの名無しさん :2006/04/14(金) 06:36:14
【HSP】HSPで3Dゲーム【3D】
http://pc8.2ch.net/test/read.cgi/gamedev/1016699230/
HSPでRPG
http://pc8.2ch.net/test/read.cgi/gamedev/1082902759/
HSPで出来る範囲について
http://pc8.2ch.net/test/read.cgi/gamedev/1085733089/
HSP - Hot Soup Processor [11]
http://pc8.2ch.net/test/read.cgi/gamedev/1133488968/
HSPでの麻雀プログラムについて
http://pc8.2ch.net/test/read.cgi/gamedev/1047707655/
HSPは・・・
http://pc8.2ch.net/test/read.cgi/gamedev/1104208959/
おまいらHSPで適当なゲームでもつくりませんか
http://pc8.2ch.net/test/read.cgi/gamedev/1102214621/
★ゲーム製作期待の星! HSP Part 9 ★
http://pc8.2ch.net/test/read.cgi/gamedev/1005313791/
HSPで完全オリのSLGを作るスレ
http://pc8.2ch.net/test/read.cgi/gamedev/1047478458/
HSPでSLGが作れるようになるまで頑張るスレ
http://pc8.2ch.net/test/read.cgi/gamedev/1103618349/
HSPでモンスター育成SLGを作りましょう!
http://pc8.2ch.net/test/read.cgi/gamedev/1089467139/
ネットゲームforHSP『無人島』制作スレ
http://pc8.2ch.net/test/read.cgi/gamedev/1018534410/
PGの面接で、使える言語はHSPですって言ったら
http://pc8.2ch.net/test/read.cgi/gamedev/1046921466/
HSPでシミュレーションRPG
http://pc8.2ch.net/test/read.cgi/gamedev/1036923414/

6 名前:デフォルトの名無しさん :2006/04/14(金) 07:26:13
>>5


7 名前:デフォルトの名無しさん :2006/04/14(金) 07:52:18
作者がHSPの宣伝に必死です

8 名前:デフォルトの名無しさん :2006/04/14(金) 08:05:57
FormatMessageなんだけど、
ここのソースをWin9Xで試した人いる?

ttp://lovecast.exblog.jp/2691227/

9 名前:デフォルトの名無しさん :2006/04/14(金) 09:01:58
>>1


10 名前:デフォルトの名無しさん :2006/04/14(金) 16:20:47
質問です。
ウィンドウハンドルを関数で渡す事は出来ますか?
現在ウィンドウハンドルをポインタで渡して使おうとしていますが
ウィンドウハンドルを使用する関数を実行しようとすると
エラーを出して終了されてしまいます

11 名前:デフォルトの名無しさん :2006/04/14(金) 16:24:54
超能力者plz

12 名前:デフォルトの名無しさん :2006/04/14(金) 16:32:40
>>10
>ウィンドウハンドルを関数で渡す事は出来ますか?

関数で渡すとは?関数に渡す事は出来るが。

>現在ウィンドウハンドルをポインタで渡して使おうとしていますが
>ウィンドウハンドルを使用する関数を実行しようとすると
>エラーを出して終了されてしまいます

君のプログラムが悪いんだろうね。
それ以上の事は分からん。

13 名前:10 :2006/04/14(金) 16:40:03
言葉足らずですいませんでした。
WinMein開始後に
void GethWnd(HWND* hWnd){p_hWnd=hWnd};と言う形の関数でHWNDを渡して
int MakeMessageWindow(LPCTSTR MessageText, LPCTSTR WindowText, UINT MessageForm)
{
return(MessageBox(*p_hWnd, MessageText, WindowText, MessageForm));
};
と言う関数を実行しようとしたのですが、この関数を実行後に終了されると言う事です

14 名前:デフォルトの名無しさん :2006/04/14(金) 16:44:35
ゲスウィンドウ

15 名前:デフォルトの名無しさん :2006/04/14(金) 16:46:27
>>13
GethWndに渡したポインタが指す先は、MakeMessageWindowが呼ばれるまで有効なんだろうな?
つーかわざわざポインタにする意味あるのか?

16 名前:デフォルトの名無しさん :2006/04/14(金) 16:47:55
C言語から出直してきやがれ、な悪寒

17 名前:10 :2006/04/14(金) 16:49:44
ウィンドウは一つしか使っていないのでポインタの指す先は有効だと思います
ポインタにしたのは、メッセージウィンドウを良く使うので
すべてにhWndを渡すよりは良いと思ったからです

18 名前:デフォルトの名無しさん :2006/04/14(金) 16:52:49
超能力者plz

19 名前:デフォルトの名無しさん :2006/04/14(金) 16:54:16
お客様の中でエスパーの方はいらっしゃいませんかーーーー?

20 名前:デフォルトの名無しさん :2006/04/14(金) 16:56:10
>>17
その GethWnd() はどうやって呼んでいるの? という話。
(それ機能からするとSetHWnd()じゃないのかよ、というのは置いといて)

HWND hwnd2 = hwnd1;
とすると hwnd1 も hwnd2 も同じウィンドウを示せるというのは理解し
てないんだよね、きっと。


21 名前:デフォルトの名無しさん :2006/04/14(金) 16:57:00
エラー:エスパーが見つかりません

22 名前:デフォルトの名無しさん :2006/04/14(金) 16:58:45
ウィンドウハンドルもポインタも同じ大きさだから
間接参照する分ポインタの方が効率悪いんだけどね。管理も大変だし。

23 名前:デフォルトの名無しさん :2006/04/14(金) 16:58:54
meinには突っ込まないのか
それgetterじゃなくてsetterだな

>>17
ウィンドウハンドル(hWnd)は、ポインタではなく値だ
だから値として保持しろ

24 名前:10 :2006/04/14(金) 17:10:02
すいません、脳内で>>15をわざわざ関数〜に変換してました
ポインタは試行錯誤していた時の名残です
GethWnd()は別にヘッダを作って、そこで宣言しています
hWndを広域で宣言していたので、GethWnd()はWinMein開始直後に実行しています
hWndを使うウィンドウはそれから作っています

25 名前:デフォルトの名無しさん :2006/04/14(金) 17:15:49
WinMein開始直後に渡す、そのハンドルの入った変数がautoなんだよ。すぐ壊れちゃうの。
だから皆、値で渡せと言ってくれてるの。

二度もMeinじゃマジっぽいな。

26 名前:デフォルトの名無しさん :2006/04/14(金) 17:16:42
ソース全部乗っけたほうが話早そうな気がする
ほんとにまるまる全部だとアレだが

27 名前:デフォルトの名無しさん :2006/04/14(金) 18:05:49
スレの初っ端から議論炸裂ですね

28 名前:10 :2006/04/14(金) 18:17:19
値で渡したら成功しました。ありがとう御座います
親ウィンドウを設定しているにもかかわらず、WinMain以外のヘッダで宣言した関数が
MakeMessageWindowを呼び出した時に、新しいタスクとしてメッセージウィンドウが作られました
この場合はまたhWndを渡さなくてはならないのでしょうか?

29 名前:デフォルトの名無しさん :2006/04/14(金) 18:20:14
>>28
「タスク」ってなにさ…。
MakeMessageWindow()って関数を作ることで、余計理解できなくなってないか?


30 名前:デフォルトの名無しさん :2006/04/14(金) 18:21:02
濃い霧に包まれているようだ。
何も見えない。

31 名前:デフォルトの名無しさん :2006/04/14(金) 18:22:14
新しいウィンドウとしてタスクバーに表示されたってことじゃないか

32 名前:デフォルトの名無しさん :2006/04/14(金) 18:23:36
そろそろ適切なスレに退去願おう。

33 名前:10 :2006/04/14(金) 18:26:53
>>28
タスクバーの中にメインとして作ったウィンドウの他に
メッセージボックスのウィンドウが作られました
WinMainの内でMakeMessageWindowを呼び出した時には作られなかったのですが
違うヘッダで宣言した関数だとウィンドウが作成されます


34 名前:デフォルトの名無しさん :2006/04/14(金) 19:08:20
>>33
p_hWndがNULLだからじゃねーの?

35 名前:10 :2006/04/14(金) 19:31:23
>>34
NULLになっていました
>>32
ttp://pc8.2ch.net/test/read.cgi/tech/1143601166/l50
がWIN32APIの質問OKでしたので、そちらに移らせていただきます。
お騒がせしてすいませんでした。

36 名前:デフォルトの名無しさん :2006/04/14(金) 20:13:27
C++相談室で誘導されて来ました。

質問なんですが、Windows付属のペイントソフトでブラシの太さ(堅さ?)を3段階で選べますよね?
あれをユーザが0から100の値で太さを選べるようにするにはどういうコードを書いたらいいんでしょうか?

37 名前:デフォルトの名無しさん :2006/04/14(金) 20:22:39
>>36
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pens_9wha.asp

38 名前:36 :2006/04/14(金) 20:26:12
>>37
ありがとうございます。
これと同じように作ってみます^^

39 名前:デフォルトの名無しさん :2006/04/14(金) 21:42:27
SPY++もっていないんでSysTree++ってソフトを手に入れてインスコしたら
ウィルスを作成するプログラムが入ってたみたいで
OS再起動後、ログオン時にSysTree++を呼びにいくようなプログラムが発生して起動できない。
レジストリを前の状態に戻して再起動したらなんとかいけたけど・・・

SPY++ってC++に付属なんですよね?他にこれと同じような機能のものないですか?
他に落としたのはWinIDって奴でこれはマウス座標にあるウィンドウ内のコントロールを表示する物なんですけど
ツリー上に表示したり、ハンドル一覧のテキスト書き出しとかはできないんですよね


40 名前:デフォルトの名無しさん :2006/04/14(金) 21:46:15
Winspectorも同類かな

41 名前:39 :2006/04/14(金) 22:33:53
>>40
このソフトいいですね!ありがとう。

42 名前:デフォルトの名無しさん :2006/04/15(土) 07:43:12
PSDKに入っていなかったけ?

43 名前:デフォルトの名無しさん :2006/04/15(土) 08:59:10
HFONTがわかっている場合にそのフォント名を得るにはどうすればいいのですか?

44 名前:デフォルトの名無しさん :2006/04/15(土) 09:44:32
>>43
GetObject()でLOGFONTを取得。

45 名前:デフォルトの名無しさん :2006/04/15(土) 10:10:44
他の実行中のプロセスに(LoadLibaryで)アタッチされているDLLのパス名を列挙するにはどうすればいいの?

46 名前:デフォルトの名無しさん :2006/04/15(土) 12:53:52
DLL 列挙 API

47 名前:デフォルトの名無しさん :2006/04/15(土) 13:33:22
NT系限定ならSAPI

48 名前:デフォルトの名無しさん :2006/04/15(土) 14:54:13
CreateFont()にはlfFaceNameを指定する必要はないし、
フォントマッパーはlfFaceNameを無視する場合もある。
GetObject()は元となったlogfontを返す。


49 名前:デフォルトの名無しさん :2006/04/15(土) 14:58:24
>>45
むしろ>>8にヒントが

50 名前:デフォルトの名無しさん :2006/04/15(土) 16:24:39
動きませんー。
入門書のサンプルコード通りに打ち込んだのですが。。。
コンパイルはできますが、実行すると、ポンッというエラー音がして
何も操作できません。
子ウィンドウの動作を確認するサンプルです。
どこがいけないんでしょう・・・。

ソース
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=27528

51 名前:デフォルトの名無しさん :2006/04/15(土) 16:30:40
デバッグ料を振り込んでください

52 名前:デフォルトの名無しさん :2006/04/15(土) 16:46:34
すみません、動きました。
入門書の今までの章で作ったサンプルを雛形として使いまわしていたので、
メッセージだけ受け取ってreturn 0のみ行っている部分があったのですが
これがまずかったらしいです。

53 名前:デフォルトの名無しさん :2006/04/15(土) 17:06:01
DLLを自分で作ったDLLと置き換えたいのですが、
呼び出し側が下記みたいになっていたときは
DLL側の関数の宣言はどんなふうにしたらいいのでしょうか?
__declspec(dllimport) int __stdcall test();

たとえば、
__declspec(dllexport) int __stdcall test();
と言うようなふうにすると起動時に
「プロシージャエントリポイント test がDLLに見つからない」
と出てしまい、(「_test@20」と言う名称になっている)

__declspec(dllexport) int test();
と言うようなふうにするとDLLの関数を呼び出して戻ってきた時に
スタック位置が変わってると怒られてしまいます。
どこがいけないのでしょうか…


54 名前:デフォルトの名無しさん :2006/04/15(土) 18:08:31
>>53
DEFファイル作れ

55 名前:デフォルトの名無しさん :2006/04/15(土) 18:09:21
>>53
>「_test@20」と言う名称になっている
extern "C" は?

56 名前:デフォルトの名無しさん :2006/04/15(土) 18:14:10
>>55
もともと C でつくってるんじゃない?
あの例だと _test@0 だけど・・・。

57 名前:53 :2006/04/15(土) 18:28:30
cppですが一応extern "C"はしてありました。
DEFファイルを作ってみたところ無事に実行することが出来ました!
ずっと引っかかっていたので助かりました、ありがとうございました。


58 名前:デフォルトの名無しさん :2006/04/15(土) 18:38:23
>>55
extern "C"は関数名に引数や戻り値の型などの情報を含めない(マングリング抑制)
visual studioでexport関数の先頭に自動的にアンダースコアが付記されることとは別

59 名前:デフォルトの名無しさん :2006/04/16(日) 02:16:05
リンクしてないという落ち。

60 名前:デフォルトの名無しさん :2006/04/16(日) 02:32:16
・・・・・・・(マングリング抑制?)

61 名前:デフォルトの名無しさん :2006/04/16(日) 02:50:21
始めましてです。
Windowsアプリケーションを作ろうと思っています。
詳しい内容は端折りますが
ttp://www.vector.co.jp/soft/win95/prog/se324535.html?y
と同じようなものを作りたいのです。
お聞きしたいことは
「Buttonコントロールなどをマウスで移動出来るようにしたい」
です。
私の考えでは、Buttonの上でのマウスダウン、アップを受取るのだと思うのですが
やり方がわかりません。
ご教授願お願いしますm(__)m]

環境はXP ProでVisualStudio.NET


62 名前:デフォルトの名無しさん :2006/04/16(日) 06:29:44
横取り40万

63 名前:デフォルトの名無しさん :2006/04/16(日) 07:38:18
>>61
> Buttonの上でのマウスダウン、アップを受取る
サブクラス化で。

もしくは、ボタンに見えるものを描画するだけでいいなら
DrawFrameControl
を使う方法もある。

64 名前:デフォルトの名無しさん :2006/04/16(日) 08:24:06
DrawFrameControlなんかを使うとLuna対応が面倒。

65 名前:デフォルトの名無しさん :2006/04/16(日) 08:50:39
ボタンといってもただの子ウインドウだからね
マウスを押しながら動かしたら移動すればいいだけだな

66 名前:デフォルトの名無しさん :2006/04/16(日) 11:37:55
ヒットテストでキャプションを返せば全自動だが、
標準で機能が用意されているのに何故いちいち自分でやろうとする?

67 名前:デフォルトの名無しさん :2006/04/16(日) 12:01:24
そうするとボタンとして機能しなくなるわな

68 名前:デフォルトの名無しさん :2006/04/16(日) 12:43:38
RADを作りたいならそれでもよし

69 名前:デフォルトの名無しさん :2006/04/16(日) 14:34:42
自分のウィンドウにWM_SIZEが来たときに自分のウィンドウをMoveWindowしたら無限ループになりますか?

70 名前:61 :2006/04/16(日) 15:00:49
どうしても影分身みたいにButtonが殖えます。
しかもマウスの動きにあってない!!!
どこでミスしたかわかりません。

手本になるようなサイトはないでしょうか?

71 名前:デフォルトの名無しさん :2006/04/16(日) 15:03:11
てか.NETはスレ違い

72 名前:デフォルトの名無しさん :2006/04/16(日) 18:19:36
単なる break; 忘れに1000ペリカ

73 名前:デフォルトの名無しさん :2006/04/16(日) 18:44:21
リソースからビットマップを読みこむ方法はわかりますが、ファイルから読みこむ方法がわかりません。

74 名前:デフォルトの名無しさん :2006/04/16(日) 18:47:24
そうですか。

75 名前:デフォルトの名無しさん :2006/04/16(日) 18:47:36
while(TRUE){}

したらWindowsがフリーズしますか?
それともアプリケーションがフリーズしますか?

76 名前:デフォルトの名無しさん :2006/04/16(日) 18:52:01
いずれもNOだ。

77 名前:デフォルトの名無しさん :2006/04/16(日) 19:16:20
>>75
そんくらいやってみろカス

78 名前:デフォルトの名無しさん :2006/04/16(日) 19:24:05
>>75
日本語でおk

79 名前:デフォルトの名無しさん :2006/04/16(日) 20:38:23
デュアル環境とかでない状態でスレッドの優先順位を最上位にすればOSごといける。

80 名前:デフォルトの名無しさん :2006/04/16(日) 21:27:24
implementation

var
drag : boolean;
x1, y1 : integer;

{$R *.dfm}

procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
pos:TPoint;
begin
drag := true;
pos.X := Button1.Left;
pos.Y := Button1.Top;
Windows.ClientToScreen(Form1.WindowHandle,pos);
x1 := Mouse.CursorPos.X-pos.X;
y1 := Mouse.CursorPos.Y-pos.Y;
end;

81 名前:デフォルトの名無しさん :2006/04/16(日) 21:28:17
procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
drag := false;
end;

procedure TForm1.Button1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if drag then
begin
Button1.Left := Mouse.CursorPos.X-Form1.Left-x1;
Button1.Top := Mouse.CursorPos.Y-Form1.Top-y1;
Button1.Caption := IntToStr(Button1.Left)+','+IntToStr(Button1.Top);
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Form1.BorderStyle := bsNone;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Close;
end;

end.

82 名前:デフォルトの名無しさん :2006/04/16(日) 21:29:48
氏ね

83 名前:デフォルトの名無しさん :2006/04/16(日) 23:36:17
Del厨はDelphiスレから出てくるな

84 名前:デフォルトの名無しさん :2006/04/17(月) 00:28:12
それでもDelさ
なんちて

85 名前:デフォルトの名無しさん :2006/04/17(月) 06:34:42
>>84

86 名前:デフォルトの名無しさん :2006/04/17(月) 14:03:58
keybd_eventを使って、'_'を送る方法を教えてください。
もしくはkeybd_event以外の代案をいただけると助かります。
ちなみに、送り先はコマンドプロンプトです。
英数、マイナス、ピリオドなどはできたのですが、'_'だけが送れずに困っています。

87 名前:デフォルトの名無しさん :2006/04/17(月) 14:46:39
(´ー`)ノ VK_OEM_102

88 名前:デフォルトの名無しさん :2006/04/17(月) 15:09:10
>>87
できました!
'_'の場合にkeybd_eventでVK_OEM_102を送るだけでは駄目でしたが('\'が出る)、
事前にVK_SHIFTを送ることで'_'を出すことができました。
ありがとうございました。本当に助かりました。

89 名前:デフォルトの名無しさん :2006/04/17(月) 15:44:11
えらくハードウェア依存な動作をしそうだが。

90 名前:デフォルトの名無しさん :2006/04/17(月) 17:00:25
サブクラス化について調べていたのですが、
スーパークラス化
という単語が出てきて混乱しています

とりあえずしらべてみたところ
・オブジェクト指向とは関係ないらしい
・既存のコントロールに機能を付け足す事ができる


何がちがうんでしょうか


91 名前:デフォルトの名無しさん :2006/04/17(月) 17:11:21
同じ言葉を違う意味で使ったり
同じことを違う言葉で呼んだりするから
それだけじゃなんとも

92 名前:デフォルトの名無しさん :2006/04/17(月) 17:14:52
0x00001000
↑こういうのって2進数っていうんですかね?
どなたかご回答お願いします。

93 名前:デフォルトの名無しさん :2006/04/17(月) 17:18:44
>>92専用スレがあるから、そっちで聞け。
http://pc8.2ch.net/test/read.cgi/tech/1100537740/

94 名前:デフォルトの名無しさん :2006/04/17(月) 17:20:30
>>92
マジレスすると16進

95 名前:90 :2006/04/17(月) 17:20:46
わかりました

Windowsのコントロールについて
・既存の「クラス」に機能を追加する->スーパークラス化
・既存の「インスタンス」に機能を追加する->サブクラス化

て認識でいいんですかね

96 名前:デフォルトの名無しさん :2006/04/17(月) 17:54:03
>>94
たまに 0b01101001 のような 2進表記が言語レベルで欲しくなるときがある・・・
マクロで逃げてるけど

97 名前:デフォルトの名無しさん :2006/04/17(月) 17:55:52
スーパークラスってサブクラスの逆の意味じゃないのか?

98 名前:デフォルトの名無しさん :2006/04/17(月) 17:56:09
>>94
サンクス

99 名前:デフォルトの名無しさん :2006/04/17(月) 17:58:44
95のであってるよ

100 名前:デフォルトの名無しさん :2006/04/17(月) 18:22:53
質問なのですがビットマップの宣言の時に
HBITMAP HaikeiBmp; という宣言と
int HaikeiBmp;     というint型でビットマップの宣言をする事は
どういう意味があるのでしょうか?
どなたか教えていただけないでしょうか<(_ _)>

101 名前:デフォルトの名無しさん :2006/04/17(月) 18:26:16
その宣言が同時に行なわれているなら、コンパイルエラーを出すため。

そうじゃなきゃ、後者は
・ウィンドウズのデータ型を死んでも使いたくないへそまがり。
・そもそもHBITMAPを格納する変数じゃ無い。

102 名前:デフォルトの名無しさん :2006/04/17(月) 18:29:08
> ・そもそもHBITMAPを格納する変数じゃ無い。
変数名から無理矢理想像すると ImageList の index 用とかか。

103 名前:デフォルトの名無しさん :2006/04/17(月) 18:31:45
宣言は同時に行われていないので、多分後者の方だと思います。
取り合えずたいして気にするような事では無かったのですね。
教えていただき、ありがとうございました<(_ _)>

104 名前:デフォルトの名無しさん :2006/04/17(月) 19:29:07
OleLoadPictureについて質問です。

OleLoadPictureを使って画像を読み込んでいるのですが、
これでロードした画像の横幅と縦幅は、ピクセル単位ではないようです。

CDC::HIMETRICtoDPを使ってピクセル単位に直すようなのですが、
CDC::HIMETRICtoDPはMFCのためwindows.hをincludeしてやっている
今のプログラムと親和性がありません。
何かほかの方法で、ピクセル単位に変更することはできませんでしょうか?

OleLoadPicture関係はGoogleを使っても扱っているサイトが少なく、
扱っていてもMFCのため弱っています。
分かるかたいらっしゃいましたら、助言いただけると幸いです。

105 名前:デフォルトの名無しさん :2006/04/17(月) 19:36:37
HIMETRICtoDPが中で何をやっているのか見ればいいじゃん。

106 名前:デフォルトの名無しさん :2006/04/17(月) 19:36:57
MFC のソース見れば?

# DC の MapMode で分岐してるのか。
# 意外とめんどくさそうだね

107 名前:デフォルトの名無しさん :2006/04/17(月) 20:00:29
その部分だけ抜き出すのは相当しんどそうですね…。
正直GIFを読み込むのにOleLoadPictureを使っているのですが、
みなさんはGIFの読み込みはどうしていらっしゃるのでしょうか。

一応ネット上でGIF読み込みルーチンが公開されていたので、それで実装してもよいのですが、
可能ならばAPIなどで済ませたいものです。
(逆にAPIですまないから、ルーチンが公開されているのかもしれないですが)

108 名前:デフォルトの名無しさん :2006/04/17(月) 20:08:47
GDI+

109 名前:デフォルトの名無しさん :2006/04/17(月) 20:27:39
はじめまして、よろしくお願いします。

ワードマクロから自作アプリ(C#)にSendMessageをする方法を教えて下さい。

自作マクロ側には、既に下のように書きました。
即ち、フォームインスタンスにWndProcをoverrideして
Debug.WriteLine(m.Msg.ToString());を記述しました。
これにより、フォームのタイトルバーでマウスを動かすと、
WN_MouseMoveとかがたくさん表示されるようになりました。

一方、WordVBA側に何を記載すればよいのか
なかなか検討がつきません。

今は、
ttp://www.geocities.co.jp/SiliconValley/4805/vbtips/vbtips096.htm
を参考にしながら、がんばってますが、
Call SendMessage(hWndTo, WM_COPYDATA, Me.hwnd, sdtCOPYDATASTRUCT)
のMe.hwndでエラーが出てしまいます。
ワードVBA側には、何を記述すればよいのでしょうか。
このURLに記載されている通りにやっては、なぜうまくいかないのでしょうか。
お忙しい中、申し訳ないですが、宜し<お願いします…。


110 名前:デフォルトの名無しさん :2006/04/17(月) 20:51:52
VBA で WM_COPYDATA というと送信元ウィンドウハンドルは 0 を指定してるのが多いな

111 名前:デフォルトの名無しさん :2006/04/17(月) 20:55:24
送信元ウィンドウハンドルを NULL で って危なくない?
プロセス越しのデータ複写機構がうまく機能できるのかな?

112 名前:109 :2006/04/17(月) 21:07:53
サンクス!なるほど、Me.hwndは0でよかったわけですね・・・。

>hWndTo = FindWindow(vbNullString, "受信フォーム")

これの"受信フォーム"という記載を、自作アプリのフォームの
タイトルバーに設定した文字列に置き換えれば・・・いいのですね!?

113 名前:デフォルトの名無しさん :2006/04/18(火) 09:46:37
ShowCursor でマウスカーソルの表示/非表示を
設定できますが、全てのアプリ(デスクトップ上)の
カーソルを表示/非表示した場合はどうすれば
良いのでしょうか?

114 名前:デフォルトの名無しさん :2006/04/18(火) 10:24:38
某ねこまんまのように実行中のプロセスの
仮想メモリの中身が見たいのですが、どこから手をつければいいか
あまりにも分かりません。Win32APIの力で何とかならないでしょうか?
特定のアドレスの値を監視したいのです。

115 名前:デフォルトの名無しさん :2006/04/18(火) 10:35:48
ReadProcessMemory

116 名前:デフォルトの名無しさん :2006/04/18(火) 10:37:20
>>115
ああっありがとうございます!
ちょっと避け気味だったAPIですが、実はすごいですね。

117 名前:デフォルトの名無しさん :2006/04/18(火) 10:43:08
それほどでもない

118 名前:デフォルトの名無しさん :2006/04/18(火) 11:32:16
>>113
>カーソルを表示/非表示した場合はどうすれば
>良いのでしょうか?
別に何もしなくていいのでは? 或いは好きなことをすればいいのでは?
何のためにカーソルを表示/非表示したのか知りませんが。

119 名前:デフォルトの名無しさん :2006/04/18(火) 15:53:07
サブクラス化について質問です。
fnSubProc = (WNDPROC)SetWindowLong(hWnd,GWL_WNDPROC,(LONG)SubProc)
としたらfnSubProcには元のウィンドウプロシージャが入りますよね。

そのとき、Button1とButton2とEdit1で上の式、
fnSubProc = (WNDPROC)SetWindowLong(hWnd,GWL_WNDPROC,(LONG)SubProc)
をしたとき、fnSubProcに入る値はButton1とButton2が同じでした・・・

ということはもしかしてなんですが
fnSubProcに入る値は基本的にクラスによって決まるということなのでしょうか?

120 名前:デフォルトの名無しさん :2006/04/18(火) 15:59:35
どうやってハッキングするんですか?

121 名前:デフォルトの名無しさん :2006/04/18(火) 16:05:41
>ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。


122 名前:デフォルトの名無しさん :2006/04/18(火) 16:36:34
>>119
そうだ。


123 名前:デフォルトの名無しさん :2006/04/18(火) 16:37:39
>>120
相手の手を叩け

124 名前:デフォルトの名無しさん :2006/04/18(火) 16:49:23
ウィンドウのフォーカスを失わないようにする事ってできますか?

125 名前:デフォルトの名無しさん :2006/04/18(火) 20:47:35
>>124
May the Focus be with you.

126 名前:119 :2006/04/18(火) 21:12:42
>>122
どうゆうことですか

あとsageすんの忘れてました

127 名前:デフォルトの名無しさん :2006/04/18(火) 21:18:13
同じクラスのウィンドウは、同じウィンドウプロシージャを使う。


128 名前:デフォルトの名無しさん :2006/04/18(火) 21:46:03 ?
>>124
古いOSならSetSysModalWindowが効くかも知れない。
今同じようなことをやるならSetCaptureとLockSetForegroundWindowかなぁ。
システムホットキーって止められたっけ?

129 名前:126 :2006/04/18(火) 23:37:20
>>127
別のクラスのウィンドウに、同じプロシージャを使う方法ってありますか?
もちろん「プロシージャの内容は共通して使えるものに限る」としてです。

130 名前:デフォルトの名無しさん :2006/04/18(火) 23:41:17
サブクラス化だろ

131 名前:デフォルトの名無しさん :2006/04/18(火) 23:44:19
> プロシージャの内容は共通して使えるものに限る

その前提が成り立つことがほぼありえない。

132 名前:129 :2006/04/18(火) 23:46:35
そうです、サブクラス化の質問です。
たとえば、BUTTONとEDITを共通のサブプロシージャを使うということです。

サブプロシージャのreturn CallWindowProc()のところさえいじくれば出来そうな気がするんですけど・・・

133 名前:129 :2006/04/18(火) 23:48:07
>>131
遊び程度の小規模のものなら・・・

134 名前:デフォルトの名無しさん :2006/04/18(火) 23:52:06
がんばれば何とかなるよ。
君には無理だけど。

135 名前:129 :2006/04/18(火) 23:55:43
>>134
すいません。
確かにこんなことしても勉強にもなりませんよね。。。
ちょっとサブプロシージャ複数作るのめんどくさいなぁって考えちゃいました

136 名前:デフォルトの名無しさん :2006/04/19(水) 11:48:34
例えば OS の Timezone が JST の環境で、EST での時刻を取得するためには
どうしたら良いのでしょうか。TIME_ZONE_INFORMATION のメンバを自分で
設定しなければならないんでしょうか。。調べたのですが良い方法が見つかり
ませんでした。

137 名前:デフォルトの名無しさん :2006/04/19(水) 15:05:28
標準時差と夏時間の有無から自分で計算

138 名前:デフォルトの名無しさん :2006/04/19(水) 15:39:58
cdeclでExportされた関数を
VC++で動的に呼び出す方法はあるますか?

139 名前:デフォルトの名無しさん :2006/04/19(水) 15:53:29
ある

140 名前:デフォルトの名無しさん :2006/04/19(水) 16:47:14
EXSTYLE = NULL
STYLE = WS_SYSMENU

の時のウィンドウのボーダーって

#define BorderWidth (GetSystemMetrics( SM_CXFIXEDFRAME ) * 2)
#define BorderHeight ((GetSystemMetrics( SM_CYFIXEDFRAME ) * 2) + GetSystemMetrics( SM_CYCAPTION ))

これで十分なんでしょうか

141 名前:140 :2006/04/19(水) 16:48:38
修正です、すみません

EXSTYLE = NULL
STYLE = WS_SYSMENU

の時のウィンドウのボーダー幅を求めるのは

#define BorderWidth (GetSystemMetrics( SM_CXFIXEDFRAME ) * 2)
#define BorderHeight ((GetSystemMetrics( SM_CYFIXEDFRAME ) * 2) + GetSystemMetrics( SM_CYCAPTION ))
// 640 + BorderWidth
// 480 + BorderHeight

これで十分なんでしょうか

142 名前:デフォルトの名無しさん :2006/04/19(水) 16:51:59
bool flgDrnWndProc = false;
protected override void WndProc(ref Message m)
{
if (!flgDrnWndProc)
{
flgDrnWndProc = true;
const int WM_COMMAND = 0x0111;
switch (m.Msg)
{
case WM_COMMAND:
switch (m.WParam.ToInt32())
{
case 1:
search_unit();
break;
case 2:
search_end();
break;
case 3:
search_reverse();
break;
case 4:
add_unit();
break;
default:
break;


143 名前:142 :2006/04/19(水) 16:53:57

}
break;
default:
break;
}
}
base.WndProc(ref m);
flgDrnWndProc = false;
}

WndProc内で呼び出したメソッドの処理が終わるまで、
WndProc内の他の処理(base.WndProc(ref m);を除く。)が絶対に処理されないように、
上記のように書いてみたのですが、例えばsearch_unit();が処理されている途中でも、
case1に対応するメッセージが飛んでくると、重ねてsearch_unit();が実行されてしまいます。
なぜでしょうか・・・(低レメルな質問ですみません・・・)

144 名前:デフォルトの名無しさん :2006/04/19(水) 17:24:15
DirectX SDK 7 ってもしかしてもう入手不可?

不可ならDirect3DとかいいからDirectDrawを復活させて欲しいなぁ

145 名前:デフォルトの名無しさん :2006/04/19(水) 17:40:39
>>141
心配なら AdjustWindowRect で確認

146 名前:デフォルトの名無しさん :2006/04/19(水) 17:43:07
>>139
単にキャストすればよかったんですね。
ありがとうございました。

147 名前:141 :2006/04/19(水) 17:44:05
>>145
そんな便利なものがあったのかorz

サンクス

148 名前:デフォルトの名無しさん :2006/04/19(水) 18:08:49
>>143
ifブロックの中に最後の1行を入れてないからじゃないか?
それだと、trueになってから最初にWinProcが呼ばれたときにはifブロック内は実行されないけど、
必ずfalseに設定されて、次に呼ばれたときにifブロック内を実行してしまうよ。

149 名前:デフォルトの名無しさん :2006/04/19(水) 18:15:33
WinProc → WndProc
スマソ

150 名前:デフォルトの名無しさん :2006/04/19(水) 18:52:38
AdjustWindowRectも完璧じゃないけどな

151 名前:129 :2006/04/19(水) 19:23:03
BUTTON1をマウスで移動できるようにするため、
BUTTON1のサブプロシージャを、

case WM_LBUTTONDOWN:
SendMessage(hWnd, WM_SYSCOMMAND, SC_MOVE+2, 0);
break;

としました。
そしたら一応動くことには動くのですが、
それをした後にBUTTON2を押したのですが反応がありませんでした。
ですのでもう一度おしたら反応しました。
ずっとこの調子です。

これはなにが原因なんでしょうか?
あと、WM_LBUTTONUPに何かをつけるべきなのでしょうか?

152 名前:デフォルトの名無しさん :2006/04/19(水) 19:24:22
処理がまったく駄目だから

153 名前:デフォルトの名無しさん :2006/04/19(水) 19:30:46
>>141
WS_CHILD をON/OFFすれば出来ることは出来ると思う(藁

154 名前:151 :2006/04/19(水) 19:42:08
なにが駄目かわかりませんけど
書き忘れがありました。

case WM_LBUTTONDOWN:
ReleaseCapture();
SendMessage(hWnd, WM_SYSCOMMAND, SC_MOVE+2, 0);
break;

155 名前:141 :2006/04/19(水) 21:01:44
>>153


151 のことですか


156 名前:142 :2006/04/19(水) 22:24:09
>>148
おっしゃる通り!まじさんくすこ!!

157 名前:デフォルトの名無しさん :2006/04/19(水) 22:28:15
現在、あるゲームプログラミングをしています。
最後にBitBltで裏画面から表(ウィンドウ)に画像を転送しているのですが、
なんとなく非効率的だと思い、DirectXを彷彿とさせる擬似フリップ機能を作ろうとしています。
ですが、何度やっても表に出てきません。
理由または原因、出来れば解決方法を教授してください。

// 非効率的?
BitBlt( hdc, 0, 0, 320, 240, hdcFlip, 0, 0, SRCCOPY );

// 擬似フリップ
hbmpFlipTmp = (HBITMAP)SelectObject( hdcFlip, hdc );
SelectObject( hdc, hbmpFlipTmp );

158 名前:デフォルトの名無しさん :2006/04/19(水) 22:33:04
メモリDCじゃないものに・・・

159 名前:デフォルトの名無しさん :2006/04/19(水) 22:36:01
原因というか、そもそもそんなことは出来ない。

160 名前:デフォルトの名無しさん :2006/04/19(水) 22:39:35
>>158 >>159
即レスありがとうございます。

無理なんですか。
ちょっと希望を抱いていたのですが。

メモリDCじゃないとSelectObject出来ないんですか。
初めて知りました。
BitBltで頑張ります。

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

161 名前:デフォルトの名無しさん :2006/04/19(水) 22:42:35
あと、SelectObjectの第二引数にhdcもありえねー

162 名前:デフォルトの名無しさん :2006/04/19(水) 22:49:49
>>157
なんとなく非効率的だから改善しようという心がけが非効率的。
非効率で困るのなら、きちんとどこが非効率だか調べて、そこを重点的に効率化しなさい。

163 名前:デフォルトの名無しさん :2006/04/19(水) 23:13:13
教えてえらい人!

Windows のサービスで回復タブに指定した内容で
動作させるにはどんなプログラミングを行えばいいの?

回復タブの設定ってどんな仕組みで動作するの?


164 名前:デフォルトの名無しさん :2006/04/20(木) 01:04:18
>>163
CreateServiceの引数で指定できない?

165 名前:デフォルトの名無しさん :2006/04/20(木) 10:13:53
そういや2D専用なDirect3Dのライブラリってないのかねぇ‥‥

166 名前:デフォルトの名無しさん :2006/04/20(木) 10:51:42
>165
2D描画程度なら変換済み頂点使えばすぐだしスプライトもある
その程度の事にライブラリ求める程度の脳しかないならプログラミングなんか止めちまえ

167 名前:デフォルトの名無しさん :2006/04/20(木) 11:57:00
D3DX の Sprite でほとんどの用途には事足りる気がする

168 名前:デフォルトの名無しさん :2006/04/20(木) 13:30:58
あ〜やめだやめだ

169 名前:きっと166は独りで仕事しているんだろうなぁ :2006/04/20(木) 13:49:14
漏れの脳をD3DXの為に浪費するのは勿体無いから
2D用に特化されたライブラリがあって使い勝手が悪くないなら使わなくもない。
#つーか、全ての部下が漏れ並みの脳を持っているわけではないしね。

170 名前:デフォルトの名無しさん :2006/04/20(木) 14:06:16
○ 漏れ並みの脳しか持っていないわけじゃないしね

171 名前:169 :2006/04/20(木) 14:09:18
>>170
それなら部下にライブラリを作らせるだけ。

172 名前:デフォルトの名無しさん :2006/04/20(木) 14:29:10
○ 部下にライブラリ作成をお願いして馬鹿にされるだけ

173 名前:デフォルトの名無しさん :2006/04/20(木) 15:26:49
脳内部下乙

174 名前:デフォルトの名無しさん :2006/04/20(木) 15:49:34
非コンソールなアプリをDOS窓から起動したときに、
そのDOS窓に、文字列を書き出したいので、
AttachConsole()
WriteConsole()
などを使う方法で出力することはできたのですが、
書き終わった後に、DOS窓のコマンドプロンプトが表示されません。
手でENTERキーを押すと、無事にコマンドプロンプトが出るのですが、
WriteConsole()で書き終わった後に、自動的にコマンドプロンプト
を出す方法がありましたら教えて下さい。

175 名前:デフォルトの名無しさん :2006/04/20(木) 15:53:05
キー入力をシミュレートするしかないんでない?

176 名前:デフォルトの名無しさん :2006/04/20(木) 15:54:31
>>174
アタッチがあるなら、デアタッチがありそうな気がするのはオレだけか?
と言うか、まずはググってみたらどうだ?

177 名前:デフォルトの名無しさん :2006/04/20(木) 16:00:14
>>174
ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/console_functions.asp

178 名前:デフォルトの名無しさん :2006/04/20(木) 16:00:57
お前だけじゃないにしても、極端に少ないのは確か。

デアタッチ の検索結果 約 17 件中 1 - 8 件目

179 名前:デフォルトの名無しさん :2006/04/20(木) 16:08:20 ?
「デアタッチ」つったらdare touchだよなぁ・・・
"dare touch" の検索結果 約 151,000 件中 1 - 10 件目 (0.31 秒)

180 名前:176 :2006/04/20(木) 16:11:37
デタッチと言うのか…orz



# 英語力が無いから困る…orz

181 名前:デフォルトの名無しさん :2006/04/20(木) 16:27:10
attach⇔detachなんて常識だろ
英語云々以前に、そのままカタカナ語として使われてるだろ

>>176はデバッガ触ったことすら無いのか?

182 名前:デフォルトの名無しさん :2006/04/20(木) 17:09:35
今夜アナタにデアタッチ

183 名前:デフォルトの名無しさん :2006/04/20(木) 18:49:16
感じる時代ラブタッチ
いいじゃんか そうじゃんか
うひょうひょ〜
クライマ〜ックス♪

184 名前:デフォルトの名無しさん :2006/04/20(木) 19:46:06
おっさんw

185 名前:デフォルトの名無しさん :2006/04/20(木) 20:08:55
メモリの確保について質問です
物理メモリが2G乗っているWindowsXP Proで
タスクマネージャーの利用可能メモリが1.5Gとあるにもかかわらず
HeapAllocやGlobalAllocでは
合計1.2G分のメモリを確保できませんでした

大容量のメモリを使うときの作法がなにかあるんでしたら教えてください。
よろしくお願いします。

186 名前:デフォルトの名無しさん :2006/04/20(木) 20:12:21
VirtualAlloc()
VirtualAllocEx()

187 名前:デフォルトの名無しさん :2006/04/20(木) 20:38:42
>>185
32bit Windowsで1.2Gもの連続領域が確保できるだけで十分幸せだと思いねえ


188 名前:デフォルトの名無しさん :2006/04/20(木) 20:39:33
あ、「合計」か。まあでも、そんなもんだろ。


189 名前:デフォルトの名無しさん :2006/04/20(木) 21:23:55
>>187
>>185は確保できなかったと言ってるのでは

190 名前:デフォルトの名無しさん :2006/04/20(木) 23:07:22
(゚ν゚)ニホンゴムズカスィネー

191 名前:デフォルトの名無しさん :2006/04/21(金) 00:25:32
>>185
Win32アプリケーションのメモリ空間は4GB。
デフォルトではその内2GBがシステムで予約されてて、ユーザーアプリが使えるのが2GB。
一度に確保しようとすると、断片化等を考えるとそれくらいが妥当な線ではないかな?

192 名前:デフォルトの名無しさん :2006/04/21(金) 10:54:22
「合計」1.2GB が微妙。
600MB のブロックが2個かも試練し、1MB のメモリブロック 1200 コかも試練。
巨大ブロックなら断片化かも試練が、HeapAlloc で数千個のブロックを alloc
してたりするなら、0.3GB分くらい消費してるかも試練。
paging境界のpaddingも気になる。

193 名前:デフォルトの名無しさん :2006/04/21(金) 11:14:42
達人のみなさま、ねっとげーむ無料でやる方法教えてください!

194 名前:デフォルトの名無しさん :2006/04/21(金) 11:16:02
基本料金無料のネットゲームをやる

195 名前:デフォルトの名無しさん :2006/04/21(金) 13:53:40
>>194
通信料も無料でと言ってるんではなかろうか

196 名前:デフォルトの名無しさん :2006/04/21(金) 13:55:33
>>187 >>191-192
500MB程度のブロックを2つと100MB程度のブロックを2つです。
VirtualAllocも試してみましたがだめでした。

197 名前:デフォルトの名無しさん :2006/04/21(金) 14:17:10
・ネカフェでやる
利用料も無料にしたいなら
・他人の家でやる

198 名前:デフォルトの名無しさん :2006/04/21(金) 14:45:09
他人の家に侵入するのはリスクが高すぎる

199 名前:デフォルトの名無しさん :2006/04/21(金) 14:51:35
GMになればタダで遊べる上に給料までもらえる。

200 名前:デフォルトの名無しさん :2006/04/21(金) 15:19:01
脳内妄想ネットゲーム。これ最強。
これで数時間、余裕で潰せる俺に、窓際なんて怖くない。

>>196
そのメモリ確保前に、どれくらい「自アプリで」メモリ使っている?

201 名前:デフォルトの名無しさん :2006/04/21(金) 15:59:19
>>200
タスクマネージャーのPF使用量は
起動前221MB 起動直後224MB メモリ確保直前225MB
となっていますので
5MB前後だと思われます。

202 名前:デフォルトの名無しさん :2006/04/21(金) 16:01:22
なんでプロセスタブでターゲットプロセスのメモリ使用量を見ないんだろ。

203 名前:200 :2006/04/21(金) 16:14:53
>>201
202の指摘ももっともだけど、5M10M程度じゃ、あまり関係なさそうだ。失礼

204 名前:デフォルトの名無しさん :2006/04/21(金) 19:47:23
メモリ使用量じゃなくて仮想メモリサイズの方を見たほうがいいよ

205 名前:デフォルトの名無しさん :2006/04/21(金) 23:39:51
すみません。初歩的なことかもしれませんが教えてください。
ウィンドウの左端に「あるもの」にカーソルを合わせたら出てくるメニューってどう作るのですか?

「あるもの」とはVisualstudio.Netとかの「ツールボックス」とかのあれです。
わからなかったらすみません

206 名前:デフォルトの名無しさん :2006/04/21(金) 23:41:29
マウスポインタが「あるもの」の上に乗ったときにメニューを表示しすればいいんじゃないか?

207 名前:デフォルトの名無しさん :2006/04/22(土) 00:21:54
WTLでの実装例
ttp://www.viksoe.dk/code/xpui.htm


208 名前:デフォルトの名無しさん :2006/04/22(土) 00:51:39
教えてもらってなんですけど、
さっぱりわかりません。
確かに自分がいったものに間違いなさそうですが・・・

ですので左側に固定のものにしようと思います。

教えてくれてありがとうございます。

209 名前:デフォルトの名無しさん :2006/04/22(土) 07:52:30
Windowsプログラミング初心者です。
SetWindowsHookExでWH_KEYBOARDを監視するとして、何かキーが押されたらコールバックが発生しますが
コールバック元を特定するにはどうしたら良いのでしょうか?
フォーカスの当たっているウィンドウ?コントローラ?を探す感じでしょうか?


210 名前:209 :2006/04/22(土) 07:59:19
書き忘れました。
↑のはグローバルフックの場合です。

211 名前:デフォルトの名無しさん :2006/04/22(土) 11:25:27
IMEについての質問なんだが、
変換候補を取得する時、CANDIDATELIST 構造体を使うわけだが

CANDIDATELIST 構造体の定義
----------
typedef struct tagCANDIDATELIST {
 DWORD dwSize;   
 DWORD dwStyle;   
 DWORD dwCount;   
 DWORD dwSelection; 
 DWORD dwPageStart; 
 DWORD dwPageSize; 
 DWORD dwOffset[1]; ←配列の要素は一つ
} CANDIDATELIST, *PCANDIDATELIST;
----------

dwOffset[] はこの構造体の先頭からのオフセット値で、
一つ目の文字列を取得するには 先頭アドレス+dwOffset[0] を参照する。
二つ目なら 先頭アドレス+dwOffset[1] を参照してくらしいけど、
dwOffset[]って、構造体の中の宣言ではdwOffset[1]として、要素は一つしか
宣言してないのに、サンプルプログラムとか見ると、普通にdwOffset[2]とかを
使ってる。どうして、配列違反にならないの?


212 名前:デフォルトの名無しさん :2006/04/22(土) 11:28:24
その分、余分に領域を確保しているんじゃね?
newとかで。

213 名前:デフォルトの名無しさん :2006/04/22(土) 11:28:46
ならないようにメモリ確保して使ってるから。

214 名前:デフォルトの名無しさん :2006/04/22(土) 11:42:07
必要なサイズ調べて確保する

ttp://www.kumei.ne.jp/c_lang/sdk3/sdk_282.htm

215 名前:デフォルトの名無しさん :2006/04/22(土) 12:08:07
>>212-214
お、すばやい回答サンクス。

ちょっと簡単な実験プログラム書いて実験してみて理解できた。
こんなやり方があるんですね。勉強になったよ。

216 名前:デフォルトの名無しさん :2006/04/22(土) 12:25:53
EnumWindowで列挙したウィンドウハンドルから
Alt+PrintScreenでクリップボードに取れるような
ウィンドウイメージを取得するのはどうすればいいでしょうか?


217 名前:デフォルトの名無しさん :2006/04/22(土) 12:47:32
ウインドウハンドルがとれているのに、
何故その質問になるのかさっぱり意味が分からない。

218 名前:デフォルトの名無しさん :2006/04/22(土) 12:49:03
ウィンドウハンドルからどうやってビットマップイメージに変換するんでしょうか。

219 名前:デフォルトの名無しさん :2006/04/22(土) 12:49:25
(BMP)hWnd

220 名前:デフォルトの名無しさん :2006/04/22(土) 12:55:01
>>219
よくわからないので、できればそのことを確認できるキーワードか解説しているURLを教えてください。

221 名前:デフォルトの名無しさん :2006/04/22(土) 13:03:25
おしえてあげないよ!ジャン♪

222 名前:デフォルトの名無しさん :2006/04/22(土) 13:29:48
>>216
GetWindowDCでどうだ?

223 名前:デフォルトの名無しさん :2006/04/22(土) 14:08:09
Win32の先輩方って、構造化例外処理をどの程度活用されていますか?
例えば、HeapAlloc() に HEAP_GENERATE_EXCEPTIONS を指定したりします?
確かに便利だとは思うのですが、大きな罠が隠れているような気もします。

224 名前:デフォルトの名無しさん :2006/04/22(土) 14:15:18
ttp://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9804/idea/fig02.gif
こういうのってどうやって作るの?

225 名前:デフォルトの名無しさん :2006/04/22(土) 14:16:35
フォーカス当たっている領域に動的にドロップダウンリスト貼り付けてるだけ。

226 名前:デフォルトの名無しさん :2006/04/22(土) 14:45:14
あっ、違います。
リストではなくその後ろの属性の値を入力できるもの全体です。
写真、ややこしいですねm(._.)m

227 名前:デフォルトの名無しさん :2006/04/22(土) 14:48:25
>>223
とりあえずalloca使うときはSEH使う。

228 名前:デフォルトの名無しさん :2006/04/22(土) 15:13:20
>>226
場所に応じて必用なコントロールを貼り付けてりだけ。
見たまんまだから別に悩むところでも疑問に思うところでもない。

229 名前:デフォルトの名無しさん :2006/04/22(土) 15:19:01
タブ型コンボボックス内蔵リストビューがあるかと言ったらそんなものはない

230 名前:デフォルトの名無しさん :2006/04/22(土) 15:31:15
C#にはあるけどね

231 名前:デフォルトの名無しさん :2006/04/22(土) 15:35:19
>>223
>Win32の先輩方
Win3.1とか?

232 名前:デフォルトの名無しさん :2006/04/22(土) 15:35:22
最近は言語にコントロールが付いてくるのか。

233 名前:デフォルトの名無しさん :2006/04/22(土) 15:36:00
>>231
むしろOS/2

234 名前:223 :2006/04/22(土) 17:49:07
>>227
なるほど。ご意見どうもありがとうございます。

>>231
Win32プログラミング歴の長い皆様…という意味っす。

235 名前:デフォルトの名無しさん :2006/04/22(土) 21:42:25
現在のキャレットの位置をスクリーン座標で取得したいのですが、
GetCaretPos はキャレットを所有しているウィンドウのクライアント座標しか
返してくれません。キャレットを所有しているウィンドウのハンドルが
分かれば、ClientToScreen でスクリーン座標に変換できるのですが、
そのような関数が見当たりません。どなたか助けてください!

236 名前:デフォルトの名無しさん :2006/04/22(土) 22:31:16
GetGUIThreadInfo

237 名前:デフォルトの名無しさん :2006/04/22(土) 23:28:20
GetForegroundWindow?

238 名前:デフォルトの名無しさん :2006/04/23(日) 00:12:55
SetWindowsHookExでグローバルフックをして
WH_KEYBOARDを監視するとして、何かキーが押されたらコールバックが発生しますが
コールバック元を特定するにはどうしたら良いのでしょうか?
フォーカスの当たっているウィンドウ?コントロール?を探す感じでしょうか?

239 名前:デフォルトの名無しさん :2006/04/23(日) 01:29:21
元はキーボードドライバ、とかじゃなくて?

240 名前:238 :2006/04/23(日) 01:45:48
説明足らずですみません。
元は、キーが押された時にフォーカスの当たっていたコントロールということです。


241 名前:デフォルトの名無しさん :2006/04/23(日) 01:57:52
209 :デフォルトの名無しさん :2006/04/22(土) 07:52:30
Windowsプログラミング初心者です。
SetWindowsHookExでWH_KEYBOARDを監視するとして、何かキーが押されたらコールバックが発生しますが
コールバック元を特定するにはどうしたら良いのでしょうか?
フォーカスの当たっているウィンドウ?コントローラ?を探す感じでしょうか?

242 名前:デフォルトの名無しさん :2006/04/23(日) 01:58:56
>>238
>>236

243 名前:238 :2006/04/23(日) 02:17:47
>>242
この場合、thread idはどこから取得すれば良いのでしょうか?

244 名前:238 :2006/04/23(日) 02:27:36
GetForegroundWindow

GetWindowThreadProcessId

GetGUIThreadInfo

をやって解決しそうです。お騒がせしました。
もしなんかもっとスマートなやり方があったら教えてください。

245 名前:デフォルトの名無しさん :2006/04/23(日) 04:37:19
スレッド間で少し長め(WPARAMとかに無理やりキャストできないサイズ)の文字列を
やりとりするには、領域を確保してそのポインタを渡すような実装しかできないんでしょうか?
どっちかのスレッドがこけて解放できなくなるなんてことが普通に起きそうで怖いんですが…

246 名前:245 :2006/04/23(日) 05:35:18
自己解決しました。

247 名前:デフォルトの名無しさん :2006/04/23(日) 05:38:52
してませんが…

248 名前:デフォルトの名無しさん :2006/04/23(日) 10:17:12
>どっちかのスレッドがこけて解放できなくなるなんてことが普通に起きそうで怖いんですが
んなコード書くほうが悪いだろう。

249 名前:デフォルトの名無しさん :2006/04/23(日) 10:24:25
>>245
スレッドの強制終了はNG。
フラグ立ててきっちり終了処理してから死んでくれと頼むのが基本。

その上でそのスレッドが文字列の開放を出来ない理由があるなら
開放の責任をメインスレッドに委ねてしまえばいい。

なんにしても
>領域を確保してそのポインタを渡すような実装しかできないんでしょうか?
これ以外の実装はない。

250 名前:デフォルトの名無しさん :2006/04/23(日) 10:42:36
GetFocus()


■過去ログ置き場に戻る■ 1- 次250 最新50
DAT2HTML 0.33f Converted.