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/
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 のレスもしっかり読んでなくてごめんなさい