Win32API質問箱 Build42
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/04/14(金) 06:09:09やさしいお兄さんやお姉さんたちが答えてくれるかも。
過去スレ、関連リンクは>>2-5くらい。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn.microsoft.com)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvencedWindowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで。
0002デフォルトの名無しさん
2006/04/14(金) 06:10:0541 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/
0003デフォルトの名無しさん
2006/04/14(金) 06:10:4131 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
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
0004デフォルトの名無しさん
2006/04/14(金) 06:12:01http://www.microsoft.com/japan/msdn/
- 猫でもわかるプログラミング
http://www.kumei.ne.jp/c_lang/
- Platform SDK Update
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
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
0005デフォルトの名無しさん
2006/04/14(金) 06:36:14http://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/
0006デフォルトの名無しさん
2006/04/14(金) 07:26:13?
0007デフォルトの名無しさん
2006/04/14(金) 07:52:180008デフォルトの名無しさん
2006/04/14(金) 08:05:57ここのソースをWin9Xで試した人いる?
ttp://lovecast.exblog.jp/2691227/
0009デフォルトの名無しさん
2006/04/14(金) 09:01:58乙
0010デフォルトの名無しさん
2006/04/14(金) 16:20:47ウィンドウハンドルを関数で渡す事は出来ますか?
現在ウィンドウハンドルをポインタで渡して使おうとしていますが
ウィンドウハンドルを使用する関数を実行しようとすると
エラーを出して終了されてしまいます
0011デフォルトの名無しさん
2006/04/14(金) 16:24:540012デフォルトの名無しさん
2006/04/14(金) 16:32:40>ウィンドウハンドルを関数で渡す事は出来ますか?
関数で渡すとは?関数に渡す事は出来るが。
>現在ウィンドウハンドルをポインタで渡して使おうとしていますが
>ウィンドウハンドルを使用する関数を実行しようとすると
>エラーを出して終了されてしまいます
君のプログラムが悪いんだろうね。
それ以上の事は分からん。
001310
2006/04/14(金) 16:40:03WinMein開始後に
void GethWnd(HWND* hWnd){p_hWnd=hWnd};と言う形の関数でHWNDを渡して
int MakeMessageWindow(LPCTSTR MessageText, LPCTSTR WindowText, UINT MessageForm)
{
return(MessageBox(*p_hWnd, MessageText, WindowText, MessageForm));
};
と言う関数を実行しようとしたのですが、この関数を実行後に終了されると言う事です
0014デフォルトの名無しさん
2006/04/14(金) 16:44:350015デフォルトの名無しさん
2006/04/14(金) 16:46:27GethWndに渡したポインタが指す先は、MakeMessageWindowが呼ばれるまで有効なんだろうな?
つーかわざわざポインタにする意味あるのか?
0016デフォルトの名無しさん
2006/04/14(金) 16:47:55001710
2006/04/14(金) 16:49:44ポインタにしたのは、メッセージウィンドウを良く使うので
すべてにhWndを渡すよりは良いと思ったからです
0018デフォルトの名無しさん
2006/04/14(金) 16:52:490019デフォルトの名無しさん
2006/04/14(金) 16:54:160020デフォルトの名無しさん
2006/04/14(金) 16:56:10その GethWnd() はどうやって呼んでいるの? という話。
(それ機能からするとSetHWnd()じゃないのかよ、というのは置いといて)
HWND hwnd2 = hwnd1;
とすると hwnd1 も hwnd2 も同じウィンドウを示せるというのは理解し
てないんだよね、きっと。
0021デフォルトの名無しさん
2006/04/14(金) 16:57:000022デフォルトの名無しさん
2006/04/14(金) 16:58:45間接参照する分ポインタの方が効率悪いんだけどね。管理も大変だし。
0023デフォルトの名無しさん
2006/04/14(金) 16:58:54それgetterじゃなくてsetterだな
>>17
ウィンドウハンドル(hWnd)は、ポインタではなく値だ
だから値として保持しろ
002410
2006/04/14(金) 17:10:02ポインタは試行錯誤していた時の名残です
GethWnd()は別にヘッダを作って、そこで宣言しています
hWndを広域で宣言していたので、GethWnd()はWinMein開始直後に実行しています
hWndを使うウィンドウはそれから作っています
0025デフォルトの名無しさん
2006/04/14(金) 17:15:49だから皆、値で渡せと言ってくれてるの。
二度もMeinじゃマジっぽいな。
0026デフォルトの名無しさん
2006/04/14(金) 17:16:42ほんとにまるまる全部だとアレだが
0027デフォルトの名無しさん
2006/04/14(金) 18:05:49002810
2006/04/14(金) 18:17:19親ウィンドウを設定しているにもかかわらず、WinMain以外のヘッダで宣言した関数が
MakeMessageWindowを呼び出した時に、新しいタスクとしてメッセージウィンドウが作られました
この場合はまたhWndを渡さなくてはならないのでしょうか?
0029デフォルトの名無しさん
2006/04/14(金) 18:20:14「タスク」ってなにさ…。
MakeMessageWindow()って関数を作ることで、余計理解できなくなってないか?
0030デフォルトの名無しさん
2006/04/14(金) 18:21:02何も見えない。
0031デフォルトの名無しさん
2006/04/14(金) 18:22:140032デフォルトの名無しさん
2006/04/14(金) 18:23:36003310
2006/04/14(金) 18:26:53タスクバーの中にメインとして作ったウィンドウの他に
メッセージボックスのウィンドウが作られました
WinMainの内でMakeMessageWindowを呼び出した時には作られなかったのですが
違うヘッダで宣言した関数だとウィンドウが作成されます
0034デフォルトの名無しさん
2006/04/14(金) 19:08:20p_hWndがNULLだからじゃねーの?
003510
2006/04/14(金) 19:31:23NULLになっていました
>>32
ttp://pc8.2ch.net/test/read.cgi/tech/1143601166/l50
がWIN32APIの質問OKでしたので、そちらに移らせていただきます。
お騒がせしてすいませんでした。
0036デフォルトの名無しさん
2006/04/14(金) 20:13:27質問なんですが、Windows付属のペイントソフトでブラシの太さ(堅さ?)を3段階で選べますよね?
あれをユーザが0から100の値で太さを選べるようにするにはどういうコードを書いたらいいんでしょうか?
0037デフォルトの名無しさん
2006/04/14(金) 20:22:39ttp://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pens_9wha.asp
0039デフォルトの名無しさん
2006/04/14(金) 21:42:27ウィルスを作成するプログラムが入ってたみたいで
OS再起動後、ログオン時にSysTree++を呼びにいくようなプログラムが発生して起動できない。
レジストリを前の状態に戻して再起動したらなんとかいけたけど・・・
SPY++ってC++に付属なんですよね?他にこれと同じような機能のものないですか?
他に落としたのはWinIDって奴でこれはマウス座標にあるウィンドウ内のコントロールを表示する物なんですけど
ツリー上に表示したり、ハンドル一覧のテキスト書き出しとかはできないんですよね
0040デフォルトの名無しさん
2006/04/14(金) 21:46:150042デフォルトの名無しさん
2006/04/15(土) 07:43:120043デフォルトの名無しさん
2006/04/15(土) 08:59:100044デフォルトの名無しさん
2006/04/15(土) 09:44:32GetObject()でLOGFONTを取得。
0045デフォルトの名無しさん
2006/04/15(土) 10:10:440046デフォルトの名無しさん
2006/04/15(土) 12:53:520047デフォルトの名無しさん
2006/04/15(土) 13:33:220048デフォルトの名無しさん
2006/04/15(土) 14:54:13フォントマッパーはlfFaceNameを無視する場合もある。
GetObject()は元となったlogfontを返す。
0050デフォルトの名無しさん
2006/04/15(土) 16:24:39入門書のサンプルコード通りに打ち込んだのですが。。。
コンパイルはできますが、実行すると、ポンッというエラー音がして
何も操作できません。
子ウィンドウの動作を確認するサンプルです。
どこがいけないんでしょう・・・。
ソース
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=27528
0051デフォルトの名無しさん
2006/04/15(土) 16:30:400052デフォルトの名無しさん
2006/04/15(土) 16:46:34入門書の今までの章で作ったサンプルを雛形として使いまわしていたので、
メッセージだけ受け取ってreturn 0のみ行っている部分があったのですが
これがまずかったらしいです。
0053デフォルトの名無しさん
2006/04/15(土) 17:06:01呼び出し側が下記みたいになっていたときは
DLL側の関数の宣言はどんなふうにしたらいいのでしょうか?
__declspec(dllimport) int __stdcall test();
たとえば、
__declspec(dllexport) int __stdcall test();
と言うようなふうにすると起動時に
「プロシージャエントリポイント test がDLLに見つからない」
と出てしまい、(「_test@20」と言う名称になっている)
__declspec(dllexport) int test();
と言うようなふうにするとDLLの関数を呼び出して戻ってきた時に
スタック位置が変わってると怒られてしまいます。
どこがいけないのでしょうか…
0054デフォルトの名無しさん
2006/04/15(土) 18:08:31DEFファイル作れ
0055デフォルトの名無しさん
2006/04/15(土) 18:09:21>「_test@20」と言う名称になっている
extern "C" は?
0056デフォルトの名無しさん
2006/04/15(土) 18:14:10もともと C でつくってるんじゃない?
あの例だと _test@0 だけど・・・。
005753
2006/04/15(土) 18:28:30DEFファイルを作ってみたところ無事に実行することが出来ました!
ずっと引っかかっていたので助かりました、ありがとうございました。
0058デフォルトの名無しさん
2006/04/15(土) 18:38:23extern "C"は関数名に引数や戻り値の型などの情報を含めない(マングリング抑制)
visual studioでexport関数の先頭に自動的にアンダースコアが付記されることとは別
0059デフォルトの名無しさん
2006/04/16(日) 02:16:050060デフォルトの名無しさん
2006/04/16(日) 02:32:160061デフォルトの名無しさん
2006/04/16(日) 02:50:21Windowsアプリケーションを作ろうと思っています。
詳しい内容は端折りますが
ttp://www.vector.co.jp/soft/win95/prog/se324535.html?y
と同じようなものを作りたいのです。
お聞きしたいことは
「Buttonコントロールなどをマウスで移動出来るようにしたい」
です。
私の考えでは、Buttonの上でのマウスダウン、アップを受取るのだと思うのですが
やり方がわかりません。
ご教授願お願いしますm(__)m]
環境はXP ProでVisualStudio.NET
0062デフォルトの名無しさん
2006/04/16(日) 06:29:440063デフォルトの名無しさん
2006/04/16(日) 07:38:18> Buttonの上でのマウスダウン、アップを受取る
サブクラス化で。
もしくは、ボタンに見えるものを描画するだけでいいなら
DrawFrameControl
を使う方法もある。
0064デフォルトの名無しさん
2006/04/16(日) 08:24:060065デフォルトの名無しさん
2006/04/16(日) 08:50:39マウスを押しながら動かしたら移動すればいいだけだな
0066デフォルトの名無しさん
2006/04/16(日) 11:37:55標準で機能が用意されているのに何故いちいち自分でやろうとする?
0067デフォルトの名無しさん
2006/04/16(日) 12:01:240068デフォルトの名無しさん
2006/04/16(日) 12:43:380069デフォルトの名無しさん
2006/04/16(日) 14:34:42007061
2006/04/16(日) 15:00:49しかもマウスの動きにあってない!!!
どこでミスしたかわかりません。
手本になるようなサイトはないでしょうか?
0071デフォルトの名無しさん
2006/04/16(日) 15:03:110072デフォルトの名無しさん
2006/04/16(日) 18:19:360073デフォルトの名無しさん
2006/04/16(日) 18:44:210074デフォルトの名無しさん
2006/04/16(日) 18:47:240075デフォルトの名無しさん
2006/04/16(日) 18:47:36したらWindowsがフリーズしますか?
それともアプリケーションがフリーズしますか?
0076デフォルトの名無しさん
2006/04/16(日) 18:52:010077デフォルトの名無しさん
2006/04/16(日) 19:16:20そんくらいやってみろカス
0078デフォルトの名無しさん
2006/04/16(日) 19:24:05日本語でおk
0079デフォルトの名無しさん
2006/04/16(日) 20:38:230080デフォルトの名無しさん
2006/04/16(日) 21:27:24var
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;
0081デフォルトの名無しさん
2006/04/16(日) 21:28:17Shift: 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.
0082デフォルトの名無しさん
2006/04/16(日) 21:29:480083デフォルトの名無しさん
2006/04/16(日) 23:36:170084デフォルトの名無しさん
2006/04/17(月) 00:28:12なんちて
0085デフォルトの名無しさん
2006/04/17(月) 06:34:420086デフォルトの名無しさん
2006/04/17(月) 14:03:58もしくはkeybd_event以外の代案をいただけると助かります。
ちなみに、送り先はコマンドプロンプトです。
英数、マイナス、ピリオドなどはできたのですが、'_'だけが送れずに困っています。
0087デフォルトの名無しさん
2006/04/17(月) 14:46:390088デフォルトの名無しさん
2006/04/17(月) 15:09:10できました!
'_'の場合にkeybd_eventでVK_OEM_102を送るだけでは駄目でしたが('\'が出る)、
事前にVK_SHIFTを送ることで'_'を出すことができました。
ありがとうございました。本当に助かりました。
0089デフォルトの名無しさん
2006/04/17(月) 15:44:110090デフォルトの名無しさん
2006/04/17(月) 17:00:25スーパークラス化
という単語が出てきて混乱しています
とりあえずしらべてみたところ
・オブジェクト指向とは関係ないらしい
・既存のコントロールに機能を付け足す事ができる
何がちがうんでしょうか
0091デフォルトの名無しさん
2006/04/17(月) 17:11:21同じことを違う言葉で呼んだりするから
それだけじゃなんとも
0092デフォルトの名無しさん
2006/04/17(月) 17:14:52↑こういうのって2進数っていうんですかね?
どなたかご回答お願いします。
0093デフォルトの名無しさん
2006/04/17(月) 17:18:44http://pc8.2ch.net/test/read.cgi/tech/1100537740/
0094デフォルトの名無しさん
2006/04/17(月) 17:20:30マジレスすると16進
009590
2006/04/17(月) 17:20:46Windowsのコントロールについて
・既存の「クラス」に機能を追加する->スーパークラス化
・既存の「インスタンス」に機能を追加する->サブクラス化
て認識でいいんですかね
0096デフォルトの名無しさん
2006/04/17(月) 17:54:03たまに 0b01101001 のような 2進表記が言語レベルで欲しくなるときがある・・・
マクロで逃げてるけど
0097デフォルトの名無しさん
2006/04/17(月) 17:55:520098デフォルトの名無しさん
2006/04/17(月) 17:56:09サンクス
0099デフォルトの名無しさん
2006/04/17(月) 17:58:440100デフォルトの名無しさん
2006/04/17(月) 18:22:53HBITMAP HaikeiBmp; という宣言と
int HaikeiBmp; というint型でビットマップの宣言をする事は
どういう意味があるのでしょうか?
どなたか教えていただけないでしょうか<(_ _)>
0101デフォルトの名無しさん
2006/04/17(月) 18:26:16そうじゃなきゃ、後者は
・ウィンドウズのデータ型を死んでも使いたくないへそまがり。
・そもそもHBITMAPを格納する変数じゃ無い。
■ このスレッドは過去ログ倉庫に格納されています