- 1 名前:デフォルトの名無しさん mailto:sage [2009/02/25(水) 01:54:24 ]
- スレ立てるまでもない、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質問箱 Build76 pc11.2ch.net/test/read.cgi/tech/1233622578/
- 321 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 02:20:15 ]
- WM_NCHITTESTでHTCAPTION返せ
- 322 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 06:28:31 ]
- >>320
いい加減に書くとそうなる (移動した時にWM_MOUSEMOVEが発生するので、WM_MOUSEMOVE→移動→WM_MOUSEMOVE→・・・を繰り返してしまう)
- 323 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 07:45:14 ]
- WM_LBUTTONDOWNでフラグ立てて、WM_LBUTTONUPで落とすような
処理が必要じゃないの?
- 324 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 09:00:29 ]
- 知らない人はレスしなくていいです。
- 325 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 09:25:56 ]
- 前回位置との差分じゃなくてWM_LBUTTONDOWNが来た時のカーソル座標と現在のカーソル座標との差分を使うんだよ。
ていうかこんなのググればサンプルがすぐ見つかるんだから深夜に糞スレで質問するぐらいなら自分で探しなよ。
- 326 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 10:04:15 ]
- つーか>>321で一発なのにな
- 327 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 10:24:15 ]
- >>325
そんなアホな処理しなくても>>321でおk
- 328 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 10:50:14 ]
- むしろ>>321でいいのにな
- 329 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 10:51:07 ]
- むしろ>>321でいいのにな
- 330 名前:デフォルトの名無しさん [2009/03/11(水) 12:02:18 ]
- >>321でいいとかマジで言ってるならアホすぎ
- 331 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:27:19 ]
- case WM_LBUTTONDOWN:
::PostMessage( hWnd, WM_NCLBUTTONDOWN, HTCAPTION,i lParam); break;
- 332 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 12:42:23 ]
- タイトルバー以外の部分をドラッグしてウィンドウを移動させる
hp.vector.co.jp/authors/VA023539/tips/window/005.htm
- 333 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:08:28 ]
- >>331
コンパイルエラーだろバカ
- 334 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:28:31 ]
- #define i
- 335 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:33:24 ]
- 333 はおそらく実際にコンパイルしてみたに違いないw
- 336 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:36:08 ]
- そんなもんコンパイルしなくても見ればわかるだろ JK
- 337 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:41:37 ]
- つーかこんな所に貼られたコードを安易にコンパイルして実行する奴なんて居るのか?
得体の知れないファイルを平気でクリックして実行するレベルだろ
- 338 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:44:38 ]
- >>337
このスレに貼られたコードの意味が分からない奴なんて居るのか?
- 339 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 14:47:51 ]
- >>338
居るよ >>337とか
- 340 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:02:01 ]
- むしろこのスレに貼られたコードの意味が分かる奴なんて居るのか?
- 341 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:04:27 ]
- >>340
いるよ >>339とか
- 342 名前:339 mailto:sage [2009/03/11(水) 15:07:17 ]
- いや俺は.netしか使ったことないから分かってないよw
- 343 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:07:39 ]
- NCHITTESTだと、どのボタンが押されたかとか、自作ライブラリとの親和性が低いとかあるので
>>325の方法で大方解決しました。ありがとうございました。 ところでGDI+の半透明描画や画像の回転機能を自分で作りたいんですが、あのライブラリは ハードの機能を使ったりしているんでしょうか?自分でちまちまピクセルごとの計算をしたら とてもゲームに使えるようなスピードにならない気もするんですが・・・
- 344 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:28:34 ]
- やってみたのか
- 345 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:31:31 ]
- やってみたのだ
- 346 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 15:39:54 ]
- これでいいのだ
- 347 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 16:11:23 ]
- まだやってないです
やるとしたら、描画命令来るたびにロックするとかかな
- 348 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 17:22:55 ]
- >>343
GDI+はソフトウェア描画だよ。
- 349 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 17:34:05 ]
- >>330
何がアホなのか言ってみな
- 350 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 18:17:52 ]
- >>348
ソフトウェア処理だけど一応MMX/SSEなどは使ってるみたい まあゲームで使える速度じゃないのは言うまでも無いけど
- 351 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 19:34:55 ]
- ____
/ \ /\ キリッ . / (ー) (ー)\ / ⌒(__人__)⌒ \ < 何がアホなのか言ってみな | |r┬-| | \ `ー'´ / ノ \ /´ ヽ | l \ ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒)) ____ /_ノ ヽ、_\ ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒) | / / / |r┬-| | (⌒)/ / / // だっておwwwwwww | :::::::::::(⌒) | | | / ゝ :::::::::::/ | ノ | | | \ / ) / ヽ / `ー'´ ヽ / / バ | | l||l 从人 l||l l||l 从人 l||l バ ン ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
- 352 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 19:37:31 ]
- ほらな
答えられない
- 353 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:04:05 ]
- >>348ぐぐ そうですか
バリバリフレームレート出まくってるゲームで描画が5割以上GDI+みたいなゲームってありますか? GDI+入れて組むのめんどくてどんなもんなのかよくわからんのです。知ってる人いたらラッキーなんで教えてくださいよ先輩
- 354 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:09:51 ]
- >>353
妄想レスだがフレームレート上げたいゲームならDirectXを普通に使うんじゃない?
- 355 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:34:18 ]
- [環境]非MFCでWin32API(VC2005でC++)です。
[質問]画面に入りきらないテキストを描画して、スクロールしたら、 上の方の文章を消して、下の方の文章を表示するプログラムが組めません。 [どこまでできたの?] DrawText作ってテキストを表示。 スクロールするだけのWindow。 スクロールした値は取れるので、それをDrawTextに反映させたいのですが、 どうやればいいでしょうか?
- 356 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:35:58 ]
- 素直にエディットコントロール使うんじゃだめなのか…
- 357 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:48:00 ]
- >>356 レスサンクス。
もっと、初期の段階だったらそれも考えれるのですが、、、ここの部分組んだらプログラム完成するんです、、、。 DrawTextの第4引数のRECT構造体の値があるんですが、 これって、マイナスの値入れるのは危険ですか? RECT rc; GetClientRect( hWnd, &rc ); rc.top -= 100;
- 358 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 20:48:54 ]
- GDI+の用途って画像ファイルの入出力とアンチエイリアスつきのベクタ描画ぐらいじゃね
- 359 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 21:01:11 ]
- >>357
問題はない。
- 360 名前:357 mailto:sage [2009/03/11(水) 21:04:13 ]
- >>359 レスありがとん。
それを聞いて安心しました。 あとは、テキストのたての長さを割り出す作業だけでいけそうです。 ありがとうございました。
- 361 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 21:48:35 ]
- メモリDCに最初から全部描いておいて、スクロールの都度、必要な部分だけBitBltする手もあるぞ
- 362 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 21:58:41 ]
- 早く数学を教えてください。
待て待て
- 363 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 22:49:25 ]
- >>354それもそうですね。
>>358GDIだけだと結構やりたいこと出来ないんですよ・・・
- 364 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:24:54 ]
- CloseHandleの戻り値って確認してる?
正しいハンドルを渡してもエラーになる場合ってどんなとき?
- 365 名前:デフォルトの名無しさん mailto:sage [2009/03/11(水) 23:27:49 ]
- ::GetLastError()
- 366 名前:デフォルトの名無しさん [2009/03/11(水) 23:38:41 ]
- >>351
アホ乙w
- 367 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 00:15:36 ]
- >>364
通信系だと、通信不良とか?
- 368 名前:デフォルトの名無しさん [2009/03/12(木) 00:49:05 ]
- プロパティシートで
psp.lParam=(LPARAM)Data; とlParamに構造体 DATAを設定しているのですが、 受取先の、Windowでは死んでいます。うまく受け渡しが できません。 psp.pszTemplate = "IDD_D"; psp.pfnDlgProc = (DLGPROC)Function0; psp.lParam=(LPARAM)Data; hpsp[0] = CreatePropertySheetPage(&psp); memset(&psh, 0, sizeof(PROPSHEETHEADER)); psh.dwSize = sizeof(PROPSHEETHEADER); psh.dwFlags = PSH_NOAPPLYNOW; psh.hInstance = hInst; psh.hwndParent = hDlg; psh.nPages = 1; psh.phpage = hpsp; psh.pszCaption = "設定"; (HWND)PropertySheet(&psh); うまく受け渡すにはどうしたらいいでしょうか
- 369 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 01:00:26 ]
- Dataの型は DATA か DATA* か? 前者なら間違い
- 370 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 01:01:18 ]
- 肝心の受け取り部分が書いてないが
((PROPSHEETPAGE*)lParam)->lParamにしてるか?
- 371 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 01:57:57 ]
- >>364
ディクス書き込みで、フラッシュ時に IO エラーが発生するとか、 ディスクフルになるとか。
- 372 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 08:34:59 ]
- >>371
ファイル書き込みは遅延書き込みありでキャッシュされているから、 CloseHandle()の戻り値では、アプリケーションからディスクI/O時の エラーは検出されないと思う。イベントログに上がるだけでは? キャッシュを書き戻す処理に関係なく、キャッシュとディスク上の配置は マップ管理されていると思うので、ディスクフルはWriteFile()の戻り値で エラーが返されるはず。 当然だが、オープンされていない間違ったハンドルを渡せばエラーが返る。
- 373 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 12:26:27 ]
- ____
/_ノ ヽ、_\ ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ /⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒) | / / / |r┬-| | (⌒)/ / / // >>366 そんなこと言うなよ。仲間だろ?wwwwwww | :::::::::::(⌒) | | | / ゝ :::::::::::/ | ノ | | | \ / ) / ヽ / `ー'´ ヽ / / バ | | l||l 从人 l||l l||l 从人 l||l バ ン ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
- 374 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 18:11:18 ]
- ボタンの描画についての質問です。
グループボックスや、ラジオボタンが描画されるとき、文字列描画部分の背景色を透過することはできないでしょうか。 MSDNを読むとWM_CTLCOLORBTNはオーナードローのボタンでないと、意味が無いということで (実際無理でした) サブクラス化をして、WM_ERASEBKGNDを捕まえて何も処理せずにreturnしたり、 GetClassInfoEx → styleメンバに CS_OWNDC を OR演算 → 新しいクラス登録、その後 WM_CREATE でSetBkMode(hdc,TRANSPARENT)を試してみたりしましたが、どちらもできませんでした。 ボタンの描画自体はデフォルトの処理を任せたいのですが、何か方法はないでしょうか。
- 375 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 18:16:18 ]
- WS_EX_TRANSPARENTを指定してWM_CTLCOLOR〜でNULLブラシを返せば?
- 376 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 18:30:15 ]
- >>375
レス有難う御座います。 試してみましたが、変化が現れませんでした。
- 377 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 18:32:15 ]
- WM_CTLCOLORBTN or WM_CTLCLORSTATIC にて
SetBakMode( hDC, TRANSPARENT); return (HBRUSH)GetStockObject( NULL_BRUSH);
- 378 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 18:50:07 ]
- >>377
コンパイルエラーだろバカ
- 379 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 18:56:37 ]
- STATICコントロールは WM_...STATIC で透過させることが出来ますが、
BUTTONコントロールはどうもうまくいかないみたいです・・・。 素直に諦めることにします。
- 380 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 19:03:33 ]
- 普通に可能なんだが・・・
ああ馬鹿なのね
- 381 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 19:21:27 ]
- 面倒だから煽らなくていいです
- 382 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 19:57:00 ]
- >>380はわかってない馬鹿とみた
- 383 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 20:03:24 ]
- >>382
ん?悔しかったの?www
- 384 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 20:07:28 ]
- ラジオボタンやグループボックスの背景なら>>375>>377が書いてる方法で透過するだろ。
前にそういうコード書いたことあるし。
- 385 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 20:46:16 ]
- >>384
新しくプロジェクトを始めて、ダイアログベースではないウィンドウ上で試してみたら、成功しました。 リソースから作ったダイアログ上のタブコントロールの上にこれらのBUTTONコントロールを配置した時に、見栄えが悪かったため 最初の質問をさせていただきましたが、グループボックスをリソースからではなく、 WM_INITDIALOG内にて、親ウィンドウをタブコントロールとして生成したところ、やりたかったことを実現することが出来ました。 レスしてくれた方々、有難う御座いました。
- 386 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 20:58:08 ]
- >最初の質問をさせていただきましたが、グループボックスをリソースからではなく、
まさか コントロールIDが IDC_STATIC のままだったとかいうオチじゃないだろうな。
- 387 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:01:56 ]
- いや、IDは数字を直指定しているのでそれはないです。
- 388 名前:デフォルトの名無しさん mailto:sage [2009/03/12(木) 21:38:45 ]
- >>382が分かってない馬鹿でした
- 389 名前:デフォルトの名無しさん [2009/03/12(木) 22:44:12 ]
- ブラウザでページを開いて、
今どの入力項目にカーソルがあたっているかを調べる方法ってありますか?
- 390 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 07:10:04 ]
- >>389
ブラウザまで自作すれば出来るんじゃね
- 391 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 07:13:03 ]
- >>390
俺もわかんねけどDOM構造調べてカーソルチェックするしかないんじゃね?
- 392 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 07:17:26 ]
- IEで、現在選択されている文字列をクリップボードにコピーさせる操作を、
別プロセスから行うのはAPIで可能ですか?
- 393 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 07:23:50 ]
- >>392
SendMessage()でいいんじゃね? 激しくメンドクサイが・・・
- 394 名前:デフォルトの名無しさん [2009/03/13(金) 08:18:47 ]
- >>391
なるほど ところでそのカーソルのチェックってどうやったらできますか?
- 395 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 08:22:31 ]
- >>394
気持は分かるがそこまでだ。DOMはWin32じゃない。 その辺のHTMLか言語スレでやってくれ。
- 396 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 10:47:02 ]
- Windowを列挙して座標から該当するWindow(コントロール)を探す。
その名前とHTMLを照合する・・ってぐらいしか思いつかないな。
- 397 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 11:03:27 ]
- アドウェアの開発を手伝ってやることはないと思うんだ
- 398 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 11:09:24 ]
- どちらかというとカード番号とかIDを奪うスパイウェアっぽい
- 399 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 11:28:01 ]
- フォームに自動入力するのは作ったことある
フォームに入ってるデータも隠しを含めて全部読めたけど カーソル位置なんか考えないな
- 400 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 11:33:52 ]
- >>396
バカ、IEはウィンドウレスだからコントロールは無いよ
- 401 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 11:35:45 ]
- >>400
- 402 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 11:45:50 ]
- このスレウザイのが張り付いてるな
自分の仕事と思ってるのか知らんが一番迷惑 面白いレスしようと思ってワクワクしてこのスレ開いてんのかな? 一番寒いのに
- 403 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 12:17:13 ]
- >>402
君が一番寒いよ
- 404 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 12:18:14 ]
- >>403
そして君が二番目
- 405 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 12:30:51 ]
- >>402
知らないならレスしないで下さい。寒いだけです。
- 406 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 12:37:34 ]
- さぶ
- 407 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 13:28:35 ]
- >>402
知識の還元してるんでしょ?喜ぶことで煽ることではないと思うが ただし、的を射る場合に限るw
- 408 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 13:37:59 ]
- >>407
寒い自己レス乙
- 409 名前:デフォルトの名無しさん [2009/03/13(金) 13:41:40 ]
- おいおい、せめて引きこもりピザは2chで役に立てwww
- 410 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 13:45:26 ]
- >>409
自己紹介乙
- 411 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 13:49:21 ]
- >>410
自作自演乙
- 412 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 13:53:53 ]
- >>411
寒い自己レス乙
- 413 名前:デフォルトの名無しさん [2009/03/13(金) 14:28:32 ]
- あるプロセスが走っているか調べるAPIはありますでしょうか?
具体的にはタスクマネージャーが動いているか知りたいです。
- 414 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 14:30:58 ]
- >>413
スパイウェアですか?
- 415 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 14:31:27 ]
- >>413
EnumWindowsでタスクマネージャWindowを探すのどうよ?
- 416 名前:413 [2009/03/13(金) 14:32:21 ]
- ちがいます。
- 417 名前:413 [2009/03/13(金) 14:35:09 ]
- 正解です。
- 418 名前:413 [2009/03/13(金) 14:35:48 ]
- >>415
ありがとうございます。試してみます。
- 419 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 14:38:44 ]
- ちんちんが大きくなるのですがどうしたらいいですか?
- 420 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 14:43:41 ]
- >>389=>>413?
タスクマネージャからプロセス隠蔽してブラウザで入力した個人情報を盗むスパイウェアを作ってるんですね 次はrootkitの作り方を質問してくるのかな
- 421 名前:デフォルトの名無しさん mailto:sage [2009/03/13(金) 15:00:12 ]
- 何でこのスレは直ぐにスパイウェアだとか、そんな悪い方向に持ってくの?
|

|