Win32API質問箱 Build124

1デフォルトの名無しさん 2017/11/11(土) 19:23:00.69ID:TpLoCFAx
Win32APIについての質問はこちらへどうぞ。

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

■過去スレ
Win32API質問箱 Build123
http://mevius.2ch.net/test/read.cgi/tech/1475897582/
Win32API質問箱 Build122
http://echo.2ch.net/test/read.cgi/tech/1451988219/
Win32API質問箱 Build121
http://echo.2ch.net/test/read.cgi/tech/1438695290/
Win32API質問箱 Build120
http://echo.2ch.net/test/read.cgi/tech/1428570962/

■関連スレ
Visual Studio 2017 Part4
http://mevius.2ch.net/test/read.cgi/tech/1509244956/
【C++】 DirectX初心者質問スレ Part40 【C】
http://mevius.2ch.net/test/read.cgi/tech/1474782237/

579デフォルトの名無しさん2018/08/24(金) 12:28:22.65ID:NFTQhSIK
ついでに質問だけど
win10あたりからウィンドウの枠のちょっと外まで(影なしにしてても)
ウィンドウのリサイズとかマウスアイコン⇔の判定に使われてるみたいで
ウィンドウの下のウィンドウを上にもって来たくてクリックしたつもりが
違うウィンドウが上に来てしまうことが多くて困ってる
これなんとかする設定どこにある?

580デフォルトの名無しさん2018/08/24(金) 12:54:56.78ID:9pgk/rrF
このスレ的な解決だとFrameRectをフックして少し大きめの枠に変えちゃえばいいのかな

581デフォルトの名無しさん2018/08/24(金) 13:35:47.85ID:C22mUEBr
> 具体的にはWS_MAXIMIZEBOXが無いとスナップできません。
win7 WS_MAXIMIZEBOXなしのタイトルバーをマウスでつまんで
desktopの上辺に移動してマウスを放すと、
タイトルバーが完全に表示されるように再移動される
これもsnapではないのか

582デフォルトの名無しさん2018/08/24(金) 16:58:34.94ID:71ZOGqZF
>>581
そうですね。即席で調べただけなので見落としてました。
いずれにせよ、スナップ操作時にどういったウィンドウならばどういう作用が起こるのか、
逆に特定のスナップの効果が欲しい場合にどういうウィンドウをセットアップすればよいのか
みたいなことがわかる情報を探しています。

583デフォルトの名無しさん2018/08/27(月) 20:05:43.05ID:vbuO7hMr
片山の取り巻きは帰れ

584デフォルトの名無しさん2018/08/28(火) 18:50:20.34ID:K0zx4BAG
実行中のGUIアプリケーションのコントロールを取得して表示させたいのですが良い方法はありますか?

585デフォルトの名無しさん2018/08/28(火) 22:31:26.44ID:CqD+kceR
spyのソースを読むべし

586デフォルトの名無しさん2018/08/29(水) 06:13:37.68ID:bvggge1h
hwnd検索するだけの質問だったのか
てっきりインジェクトして中身奪い取るとかそんなのかと思ったわww

587デフォルトの名無しさん2018/08/29(水) 06:56:51.37ID:/uFmfA/d
そっちならAppInit_DLLsの勉強しなされ
ってのが回答かな

588デフォルトの名無しさん2018/08/29(水) 07:15:50.54ID:bvggge1h
難しいのはインジェクトの先だから・・・

589デフォルトの名無しさん2018/08/29(水) 08:38:47.27ID:SgdWV5FD
悪用出来るからこの先は自分でお勉強

590デフォルトの名無しさん2018/08/29(水) 09:10:27.86ID:eKXrV34J
>>589
素直にわからないって言えよ
>>588の「先」は、「自分のプロセスに貼ったコントロールを、そのまま残しつつさらに別プロセスのウインドウに貼り付けて表示する」ということだからな

591デフォルトの名無しさん2018/08/29(水) 09:13:57.66ID:/ngMaME6
>>590
なんでそんなことするのか全然わからん。
>そのまま残しつつ
>貼り付けて

592デフォルトの名無しさん2018/08/29(水) 09:29:45.16ID:eKXrV34J
>>591
>>584がもしも>>586ならそうなるでしょ

593デフォルトの名無しさん2018/08/29(水) 10:17:28.09ID:X/yLq4q6
そのまま残してんなら奪ってないやん

594デフォルトの名無しさん2018/08/29(水) 10:41:34.94ID:eKXrV34J
>>593
飽きれるほどくだらない揚げ足取りだな
「パスワードを奪い取る」の考えてみろ。残さないとは限らないんだよ

595デフォルトの名無しさん2018/08/29(水) 11:02:53.78ID:X/yLq4q6
>>594
飽きれるほど下手な例えだな
パスワードは残さないと使えないだろ

596デフォルトの名無しさん2018/08/29(水) 11:13:44.40ID:7geB3Ftq
パスワードはいただいた
返して欲しければ1BC用意しろ

597デフォルトの名無しさん2018/08/29(水) 12:00:14.20ID:X/yLq4q6
いただいた(変更した)

598デフォルトの名無しさん2018/08/29(水) 12:09:36.88ID:/ngMaME6
入力するパスワードを勝手に変えたら駄目じゃん

599デフォルトの名無しさん2018/08/29(水) 14:19:35.46ID:X/yLq4q6
パスワード変えずに「パスワードはいただいた」って?
それ何の脅しにもならんやん
元の持ち主が別のに変更して終わり

600デフォルトの名無しさん2018/08/29(水) 14:37:13.57ID:7geB3Ftq
せっかくギャグを入れてやったのにしょうもねえ奴ら

601デフォルトの名無しさん2018/08/29(水) 22:37:19.40ID:/ngMaME6
え?おもしろいとでも思ってたの?
もしかして渾身のギャグなの?
恥ずかしくないの?

602デフォルトの名無しさん2018/08/30(木) 10:17:52.45ID:Z5Fjo3b4
程度が同じじゃないとジョークは通じないらしい
ただ今回はガキとバカだからどちらも等しく低いように見えるな

603デフォルトの名無しさん2018/08/30(木) 10:23:06.98ID:53NSE4xw
謎の上から目線

604デフォルトの名無しさん2018/08/31(金) 04:18:44.69ID:kx4Z958G
昔のゲームのコードを弄ってて困った事があります。
ウィンドウの大きさを変えると一緒に表示中の画面も引き延ばされるのですが
引き延ばされた時に粗くなって美しくないです。内部のバッファをウィンドウを最大化された時の大きさで確保しておき
ゲームの処理の方でフィルタ処理を施せば上手く行きますが出来れば小さいバッファのままで
ウィンドウのリサイズ時にAPI側でフィルタ処理できないでしょうか?
あと気になるのが環境によっては上記の処理を勝手にやってくれている環境もあります(ディスプレイドライバによるのかもしれません)。
出来れば確実にこちらで処理できるようになれば嬉しいです。

605デフォルトの名無しさん2018/08/31(金) 06:25:35.68ID:u3E//DdP
>>604
普通、WM_SIZEの都度ゲームのフレームバッファを再作成するもんじゃねえの?

606デフォルトの名無しさん2018/08/31(金) 06:50:31.93ID:kx4Z958G
>>605
出来ればバッファの大きさは固定で行きたいんです。
最大化された時にいかにも拡大してフィルタリングされた感じを出したいので。
環境によってはウィンドウがリサイズされると勝手にフィルタリングしてくれて
ぼやっとした画面になるので出来ればそれを確実にやりたい感じです。
何か設定でもあるんでしょうか。OSの設定としてあるならそれを知りたいです。

607デフォルトの名無しさん2018/08/31(金) 07:13:40.06ID:wCA0c3fj
SetStretchBltMode

608デフォルトの名無しさん2018/08/31(金) 18:32:30.98ID:kx4Z958G
>>607
良さげですね!試してみます。ありがとうございます。

6096082018/08/31(金) 20:11:53.40ID:kx4Z958G
どのタイミングでStreachBltを呼び出してるのかわからない…
ウィンドウを制御するクラスの中のWM_PAINTは空だし。
初期化時にDirectXのAPIにhWndを渡してるので勝手にDirectX内部で呼び出してるのかな?
リサイズされた時にhWndを元にHDC作ってそこでStreachBltとか。その後HDC破棄みたいな。
そうなると手出しできないってこと?

610デフォルトの名無しさん2018/08/31(金) 20:17:23.84ID:kx4Z958G
それともウィンドウ作成時のスタイル設定などで
リサイズに合わせてスケーリングをどうするのかみたいな設定があるのかな。
それだとそこの設定でどうにかなりそうな気もするけどよく分からない。
ちなみにウィンドウ制御クラスの中のWM_PAINTでは動画などのスケーリングは自前でやってた。
なので少なくともWM_PAINTの中では自分でウィンドウ内部の他の表示のスケーリングはやってない。

611デフォルトの名無しさん2018/08/31(金) 20:46:55.45ID:kx4Z958G
ここ見たらたぶん同じような症状で困ってた人がいて
http://dxlib.o.oo7.jp/cgi/patiobbs/patio.cgi?mode=past&no=1506
基本的に手出しができず綺麗に拡大されるかはドライバによるという事らしい…

え〜やだやだ〜 納得できない。やっすいPCでも綺麗に拡大されてるのに
家の高いPC(ドライバも新しい)で汚いなんて納得できないよ〜!

612デフォルトの名無しさん2018/08/31(金) 21:07:44.36ID:pOoITzWx
> 現状ではコーラさんがお書き込みになられた方法しかありません
あるって書いてあるじゃn

613デフォルトの名無しさん2018/08/31(金) 21:22:40.36ID:kx4Z958G
>>612
うん。そうだけど、たっかいグラボ積んでる家のマシンで汚く表示されて
やっすい3万くらいのPCで綺麗に表示されるのが納得いかないの。

614デフォルトの名無しさん2018/08/31(金) 21:23:46.62ID:kx4Z958G
>>612
あ、ごめん見間違った。
方法はあるんだけどバッファの大きさは固定でやりたいの。

615デフォルトの名無しさん2018/08/31(金) 21:31:04.55ID:pOoITzWx
だからバッファ固定でできるって

616デフォルトの名無しさん2018/08/31(金) 21:32:44.33ID:LcHwdHfr
なんか意味不明な質問だなと思ったら、それWin32じゃなくてDXライブラリとかいう
よくわからんライブラリの話やん。

617デフォルトの名無しさん2018/08/31(金) 21:33:51.55ID:kx4Z958G
拡大した時に粗くなる→最初から内部のバッファの解像度を上げておけばよくね?
ってのはナシで。
あくまでも内部のバッファの大きさは今のままでウィンドウが拡大された時に
勝手にドライバがやる部分をどうにかしたい。けど無理そうだね…

納得いかないのは、やっすいPCでは綺麗に表示されてるのに
たっかいPCで汚く表示されてしまうこと… 逆なら納得したのにこれはないよな〜

618デフォルトの名無しさん2018/08/31(金) 21:35:25.97ID:kx4Z958G
>>616
いやDXライブラリでも制御できない部分なので
Win32APIの方でなんとかならないのかなと思って。でも無理なのかな。
ここの人ならなんか解決法わかるかなと思ってたけど。

619デフォルトの名無しさん2018/08/31(金) 21:44:49.09ID:pOoITzWx
win32でやるならSetStretchBltMode
おまえがやるべきなのは小さい画面サイズのでいいからそのDCを取り出すこと
それしたらあとは表示するだけ

620デフォルトの名無しさん2018/08/31(金) 21:50:44.31ID:kx4Z958G
>>619
要するにそれは内部バッファのHDCを取り出して
SetStretchBltModeを設定し、その後ウィンドウのクライアント領域に自前で
StretchBltで描画しろってことになるかな?まあそれしかないのかやっぱ。

621デフォルトの名無しさん2018/08/31(金) 22:41:05.39ID:kx4Z958G
さすがに自前でやったらGDI+使っても速度が全然でなかった(毎フレーム描画しないといけないので)。
諦めます〜

622デフォルトの名無しさん2018/08/31(金) 22:47:15.40ID:u3E//DdP
なんか基本的な部分から盛大に勘違いしてそうだな

Direct3D使ってるならドライバ依存になるのはスワップチェインのバックバッファが
ターゲットウィンドウのサイズとかみ合わない場合に
Presentの呼び出しでウィンドウにフィットするように自動でスケーリングされる部分だ

ドライバ依存の挙動を回避したいならバックバッファをウィンドウに合わせてリサイズするのは必須なの

逆に、バックバッファの解像度をゲームの解像度と考える必要も無い

バックバッファがどんなサイズであれゲーム自体は固定サイズのレンダーターゲット用テクスチャにレンダリングし
バックバッファへはそのテクスチャをスプライトとして張り付けるだけ
拡縮フィルタリングをニアレストにするのもバイリニアにするのもアプリでしっかり管理できる
なんならシェーダでLanczosにしても良い

623デフォルトの名無しさん2018/08/31(金) 23:02:05.30ID:GkpBxwA9
せっかく諦めたのに

624デフォルトの名無しさん2018/08/31(金) 23:19:59.47ID:kx4Z958G
>>622
なるほど〜バッファをリサイズしないと必ずドライバ依存のスケーリングになってしまうってことね。
その辺りをもうちょい考えてどう対処するか検討してみるよ。ありがとう。
>>623
まだまだ諦めんぜえ〜ww

625デフォルトの名無しさん2018/08/31(金) 23:25:09.45ID:N52+Kto5
野菜の日

626デフォルトの名無しさん2018/09/04(火) 23:00:53.53ID:g1EQF691
CreateFile()で取得したハンドルをGetMailslotInfo()に渡していいものでしょうか?
CreateFile()の第1引数には、別プロセスでCreateMailslot()したときの第1引数と同じ
です。

627デフォルトの名無しさん2018/09/05(水) 08:35:25.55ID:w5sEnOXo
流石にmsdn見ろとしか

628デフォルトの名無しさん2018/10/03(水) 18:23:25.15ID:BIMPuBeq
リストビューでマウスドラッグで範囲選択をしているとき、
その選択範囲の矩形座標を取得する仕組みは無いのでしょうか。
範囲選択開始時のLVN_MARQUEEBEGINしか見つからないのですが。

629デフォルトの名無しさん2018/10/05(金) 23:00:23.19ID:OkuzM4NB
メインウィンドウのメッセージループからマウス系イベント拾ってくるのが楽で良い

新着レスの表示
レスを投稿する