Win32API質問箱 Build127
- 1 :デフォルトの名無しさん:2021/12/09(木) 21:32:56.60 ID:sYLpmj89.net
- Win32APIについての質問はこちらへどうぞ。
■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。
英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで
■過去スレ
Win32API質問箱 Build126
https://mevius.5ch.net/test/read.cgi/tech/1588339011/
Win32API質問箱 Build125
https://mevius.5ch.net/test/read.cgi/tech/1551247748/
Win32API質問箱 Build124
https://mevius.5ch.net/test/read.cgi/tech/1510395780/
■関連スレ
Visual Studio 2020 Part1 https://mevius.5ch.net/test/read.cgi/tech/1634166667/
Visual Studio 2019 Part7 https://mevius.5ch.net/test/read.cgi/tech/1634178709/
Visual Studio 2017 Part7 https://mevius.5ch.net/test/read.cgi/tech/1558179898/
【C++】 DirectX初心者質問スレ Part41 【C】 https://mevius.5ch.net/test/read.cgi/tech/1521786252/
- 835 :デフォルトの名無しさん:2024/05/30(木) 21:44:25.79 ID:As0oayev.net
- >>834
どのWindowsでも画面設定とか関係なくこの青なら直値で計算してもいいけど、
なにかのAPIで取得できるなら合わせておきたいです
- 836 :デフォルトの名無しさん:2024/05/31(金) 08:56:42.01 ID:UXfkVjV8.net
- 稀によく自分で手を動かすのと人に訊く比率がバグってる奴がいるよな
本人は自覚があるから分散してるつもりだろうけど一回そう思われたら終わりなんだよ
職場で塩対応されてるんだろうな
- 837 :デフォルトの名無しさん:2024/05/31(金) 13:33:58.54 ID:bH8oOxQj.net
- >>835
GetThemeColor じゃだめ?
- 838 :デフォルトの名無しさん:2024/05/31(金) 15:08:47.69 ID:b6j7bQai.net
- COLOR_HIGHLIGHTとCOLOR_HIGHLIGHTTEXTじゃないの?
- 839 :デフォルトの名無しさん:2024/06/27(木) 10:21:37.70 ID:mIdqOGxG.net
- Chromeや秀丸系製品で、タブをウィンドウ外にドラッグすると、別ウィンドウに分割できるのは、
頑張ればプロセス起動で実装できるような気もしますが、
さらに別のウィンドウの中のタブ群に移動できるのは、魔法な気がしますよね。
別プロセスの中にタブをごっそり移動するというのは、難しい気が。
どうも、画面の各タブごとに最初からプロセス起動しているようですが。
Wzエディタとか、複数立ち上げても異なるプロセス間のタブ移動はできないようですが、
これは、ウィンドウ=プロセスだからですよね。
こういうのはWPFでは作れないと思うので、今となってはこのあたりがWin32APIの将来性?
- 840 :デフォルトの名無しさん:2024/06/27(木) 11:12:44.44 ID:dd5BD0xO.net
- SetParent
- 841 :デフォルトの名無しさん:2024/06/27(木) 11:13:43.84 ID:n/nJ5fKa.net
- >>839
ドロップされたらドロップ元が自分のアプリと確認できればタブ生成して、データを引き取って終わりで駄目?
- 842 :デフォルトの名無しさん:2024/06/27(木) 11:15:48.39 ID:h+EH+DLv.net
- Win32APIでゴリゴリ作ることもできるけど
既存の仕組みを使うならOLEを検討すべきかも
- 843 :デフォルトの名無しさん:2024/06/27(木) 11:21:59.93 ID:OTNDZ+yC.net
- >>839
将来性も何も30年以上前から変わらない枯れた話だよ
- 844 :デフォルトの名無しさん:2024/06/27(木) 13:20:20.40 ID:mIdqOGxG.net
- 異なるウィンドウへタブをドラッグされたときに、ファイルを開きなおすというのは考えたんですけれど、
アンドゥとか、そもそも保存してないデータとかもあるから、案外、難しいんじゃないかと……
秀丸はファイルを開くとプロセス増えてるし。
Wzエディタはファイルを開くたびに増えないけれど、タブの結合に制約が発生するのかと。
Chromeもタブを開くたびにプロセス増えるけれど、これはサンドボックス関係の何かかもしれないですね……
- 845 :デフォルトの名無しさん:2024/06/27(木) 15:30:22.02 ID:FNjZgfw1.net
- >>840
ここに答えが出てるのにみんなスルーかよw
- 846 :デフォルトの名無しさん:2024/06/27(木) 15:52:30.68 ID:OTNDZ+yC.net
- ベストアンサーはスルーしてさしあげるのが5chの掟
- 847 :デフォルトの名無しさん:2024/06/27(木) 19:09:13.89 ID:mIdqOGxG.net
- えっ、ということは、タブをウィンドウ外にドラッグしたら、新しいプロセスを起動して、SetParent。
ウィンドウAからウィンドウBにタブをドラッグしたら、BにSetParentということ?
それだけで行けるのかなぁ。
OLEの方は確かにMFCを使っていればできそうな気もするけれど、
むむむ……
- 848 :デフォルトの名無しさん:2024/06/27(木) 23:00:25.56 ID:zz1D+M6F.net
- >>847
SetParentにNULLを渡すだけでしょ
それで独立したWindowになる
- 849 :デフォルトの名無しさん:2024/06/27(木) 23:19:11.01 ID:Ks3kYOUo.net
- >>839
AvalonDockと言うWPFでそういうのを実現するライブラリがあるよ
別プロセスは起動してない
- 850 :デフォルトの名無しさん:2024/06/29(土) 15:00:51.88 ID:AKI9JxZ5.net
- WPFはマイクソが適当に用意したWin32APIからだいぶ退化したソリューションなんよ
欠損障害者や痴呆老人を介護していくぐらいの覚悟が必要とマイクソは言っている
- 851 :デフォルトの名無しさん:2024/06/30(日) 11:07:40.79 ID:L3wyoKVN.net
- らくらくホンですねわかります
- 852 :デフォルトの名無しさん:2024/06/30(日) 13:46:38.98 ID:iWdyx4cd.net
- なんで1ウィンドウ1プロセスにこだわるのかね
- 853 :デフォルトの名無しさん:2024/06/30(日) 13:52:21.57 ID:dBsdaOes.net
- さらに、>>841 も書いてるけど、元のタブじゃなくても同じ内容を表示すればいいし。
- 854 :デフォルトの名無しさん:2024/07/02(火) 16:38:11.96 ID:ilJEPICb.net
- >>853
保存してない場合は?
undoはどうするの?
- 855 :デフォルトの名無しさん:2024/07/02(火) 21:04:03.62 ID:oj6vCWdL.net
- >>854
必要ならundoの情報も含んだ編集中のデータを渡すだけだろう
プロセス間通信するとか作業用ファイルを介すとかドラッグ&ドラッグのデータに含めるとかやりようはある
↑は別プロセス前提で書いたけど、同一プロセスの別ウィンドウ同士だったらもっと簡単だね
- 856 :デフォルトの名無しさん:2024/07/03(水) 00:20:10.87 ID:swtC0eU3.net
- ウィンドウが何処に表示されようが何も変わらない事が分からないやつが居るな…
- 857 :デフォルトの名無しさん:2024/07/03(水) 13:58:35.19 ID:B8cPwUiK.net
- いや、でも、タブが5個あって、ウィンドウ枠が2つだったとするじゃん。
片方に2つ、もう片方に3つのタブがあるような状況。
起動時のプロセスのウィンドウ枠の中で情報が保持されていて、
反対側のウィンドウ枠の中で表示されていても良いっていうこと?
その場合、ユーザが片方のウィンドウだけバツボタンで終了しようとしたときに、
難しいことになるような気が……
- 858 :デフォルトの名無しさん:2024/07/03(水) 15:50:06.42 ID:TWMTGehv.net
- ひといないねここ
- 859 :デフォルトの名無しさん:2024/07/03(水) 18:49:37.33 ID:2Xqs+u0R.net
- gpt4の賢さがすごすぎてなー
お前らの対応してると空しくなるよ
時間がもったいない
- 860 :デフォルトの名無しさん:2024/07/03(水) 20:18:25.91 ID:fDE4NTPp.net
- >>857
ウィンドウ枚数を数えて最後の一枚だったらPostQuitMessage()するだけだろ
- 861 :デフォルトの名無しさん:2024/07/03(水) 20:25:59.32 ID:pYi5R8u1.net
- >>857
情報も一緒に別プロセスに移動させれば済む話だよ
- 862 :デフォルトの名無しさん:2024/07/04(木) 07:12:03.53 ID:ak68oAE8.net
- >>857
全然別の問題になってるじゃん
他のウィンドウにタブを移動したら元のタブは消すんでしょ?
それで複数ウィンドウで一つのファイルを表示するのとは別の問題じゃん
- 863 :デフォルトの名無しさん:2024/07/04(木) 07:21:22.72 ID:PxI4bFfe.net
- UIを持たない枚数を数えるだけのプロセスが居たっていい
がミューテックス辺りで済みそうだ
- 864 :デフォルトの名無しさん:2024/07/04(木) 22:14:35.16 ID:eTz6OUM0.net
- タブの情報をプロセスから切り離して管理すればよいのでは
- 865 :デフォルトの名無しさん:2024/07/04(木) 22:43:06.74 ID:ak68oAE8.net
- SetWindowLongでウィンドウに固有のデータを書き込む方法を知らんのかい
- 866 :デフォルトの名無しさん:2024/07/04(木) 23:26:19.64 ID:vqT9K1Uf.net
- 根本的にWindowsプログラミングを理解してないんだな…
Windowsに限った話しじゃないが、Window Systemのプログラミングはメッセージループというのが有って、そこに全ウィンドウ(ボタンなんかのコントロール全部)のイベントが通知される
アプリ側は通知されたイベントの内容(ボタン押されたや再描画など)とウィンドウIDからすべき処理を判別して実行する
プロセスは当然1つで良いし、メッセージループを複数プロセスで行うなんて絶対しない
- 867 :デフォルトの名無しさん:2024/07/04(木) 23:35:12.63 ID:vqT9K1Uf.net
- 取りあえずぺゾルドは必読だ
Win32を扱ってるのは第5版迄だがもう新品じゃ手に入らない
MSはタダで読めるようにすべきなんだよな
今でも役に立つのに絶版のまま放置とか、日本法人仕事してくれ!
- 868 :デフォルトの名無しさん:2024/07/05(金) 00:19:08.16 ID:ii7HQe4f.net
- ナンシークラッツ本と並んで殿堂入りするべきだよな
- 869 :デフォルトの名無しさん:2024/07/10(水) 08:58:31.30 ID:OQuJq/Fg.net
- Win32というかDirextXなんだけどd3d9.dllを用いるゲームなんかを起動するとEvent Traceが開始されるのは自分だけ?
d3d9.dll + 7E710がboolフラグのgetterで、結果が1だと1000秒毎にntdll.RtlPublishWnfStateDataが呼ばれてEtwRTGraphicsPerfMonitorSession.etlが書き込まれる
上記のboolフラグはd3d9.Direct3DCreate9Exのルーチン内で1にセットされることまでは突き止められたけど、なぜ1にセットされるのかの究明は面倒で投げ出してしまった
- 870 :デフォルトの名無しさん:2024/07/10(水) 09:02:10.97 ID:OQuJq/Fg.net
- フラグを見てトレースするか否かを変えてる訳だから恐らくはレジストリとかでグローバルな設定が可能なんだとは思うけど英語でググっても全く情報がない
- 871 :デフォルトの名無しさん:2024/07/10(水) 14:22:20.98 ID:pzzWoCSk.net
- manifestじゃね?
- 872 :デフォルトの名無しさん:2024/07/10(水) 16:48:04.42 ID:2GPD5dJ4.net
- ここ
https://learn.microsoft.com/ja-jp/windows/win32/perfctrs/error-handling-in-the-dll
- 873 : 警備員[Lv.2][新芽]:2024/07/12(金) 06:37:17.61 ID:rAnXXRGQ.net
- !donguri
- 874 :デフォルトの名無しさん:2024/07/12(金) 07:55:37.97 ID:R+7FAFYS.net
- どんぐりとか邪魔なだけ
- 875 :デフォルトの名無しさん:2024/07/26(金) 16:31:31.09 ID:s0039+ok.net
- exe化ω
- 876 :デフォルトの名無しさん:2024/08/03(土) 11:32:27.96 ID:8ujXWrcK.net
- マルチディスプレイ環境でディスプレイごとに壁紙設定したいんだけど
SystemParametersInfoだと全部同じ壁紙設定されちゃう
どうしたらいいの?
- 877 :デフォルトの名無しさん:2024/08/03(土) 15:09:24.69 ID:oR+oLHPm.net
- 15年前の情報
https://smdn.jp/programming/tips/setdeskwallpaper_multidisplay/
- 878 :876:2024/08/04(日) 06:02:53.80 ID:SpOe1Ove.net
- あれこれ調べた結果、COMインターフェース使って実現できた
スレ汚し失礼しますた
- 879 :デフォルトの名無しさん:2024/08/05(月) 23:55:54.01 ID:jWZSSuTx.net
- https://learn.microsoft.com/ja-jp/windows/win32/printdocs/printdocs-printing
いまだにGDI Print API使っているんだが移行するもんなんかね
COMめんどい
- 880 :デフォルトの名無しさん:2024/08/06(火) 08:51:34.33 ID:cEvufDXQ.net
- それはいまだに使ってるんじゃなくて互換性のために残してあるだけやろ
Vista以降の環境で作るならXPSドキュメントAPI検討しろって書いてあるじゃん
- 881 :デフォルトの名無しさん:2024/08/06(火) 12:29:33.52 ID:/JDWd2CP.net
- XPSって息してるの?
- 882 :デフォルトの名無しさん:2024/08/06(火) 13:32:04.54 ID:geBAoTM5.net
- してない
- 883 :デフォルトの名無しさん:2024/08/07(水) 23:11:59.28 ID:QAQ+ujSz.net
- https://learn.microsoft.com/ja-jp/windows/win32/printdocs/xps-printing
[XPS Print API はサポートされていないため、今後変更または使用できない場合があります。 クライアント アプリケーションでは、代わりに 印刷ドキュメント パッケージ API を使用する必要があります。
だと
- 884 :デフォルトの名無しさん:2024/08/08(木) 08:52:42.58 ID:RW+0CWti.net
- 印刷ドキュメントパッケージってストアアプリじゃなかったっけ
241 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver.24052200