VB2005です。
タイトルのとおりです。
ウィンドウハンドルは取得できたのですが、これをどのように使うのかわかりません。
もし宜しければ、サンプルコードを載せていただくと助かります。
よろしくお願いします。
API関数のSetWindowPosを使いたい、ということでしょうか?
そうです。
SetWindowPos、SetParent、SetWindowLongなどのAPI関数を使うとできるらしいです。
過去ログに同じ質問があります。
スクリーンセーバーの設定ダイアログをモーダル表示にする方法
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200511/05110036.txt
いろいろ試しましたがうまくいきませんでした。
いろいろためしたソースを公開してみては?
> いろいろためしたソースを公開してみては?
わかりました。
Dim Args() As String = Environment.GetCommandLineArgs()
Select Case Args.Length()
Case 0, 1
' Application.Run(Form1)
Case Else
Select Case Mid(Args(1).ToLower(), 1, 2)
Case "/s" ' スクリーンセーバー。
Case "/p" 'プレビュー。
Case "/c" ' オプション。
Dim Handle_ As String = Mid(Args(1), 4) ' 画面のプロパティのハンドル。
SetWindowLong(Form1.Handle.ToInt32(), GWL_HWNDPARENT, Handle_)
EnableWindow(Handle_, 0)
Application.Run(Form1)
EnableWindow(Handle_, 1)
Case Else
End Select
End Select
皆様、ご迷惑をおかけしました。
自己解決しました。
Dim Args() As String = Environment.GetCommandLineArgs()
Select Case Args.Length()
Case 0, 1
' Application.Run(Form1)
Case Else
Select Case Mid(Args(1).ToLower(), 1, 2)
Case "/s" ' スクリーンセーバー。
Case "/p" ' プレビュー。
Case "/c" ' オプション。
Dim Handle_ As Integer = CInt(Mid(Args(1), 4)) ' 画面のプロパティのハンドル。
Dim Form1_ As New Form1
Raphael.SetWindowLong(Form1_.Handle.ToInt32(), Raphael.GWL_HWNDPARENT, Handle_)
Form1_.ShowDialog()
Case Else
End Select
End Select
ありがとうございました。
ツイート | ![]() |