2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

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
名前: E-mail (省略可) :

read.cgi ver.24052200