Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


72947 / 76738 ←次へ | 前へ→

【8274】Re:画面の大きさを変更させない
回答  bykin  - 03/10/6(月) 18:54 -

引用なし
パスワード
   こんばんわ。

SetWindowPos ってのはウィンドウの位置を設定する API で、
同時にサイズの変更もできるんやけど、SWP_NOSIZE を指定した場合は
そのときのウィンドウサイズは元のままってことやったと思うんやけどな。
サイズ変更を不可にするんとは違うんとちゃいまっか?

で、↓これでどうでっか?

Private Const GWL_STYLE = (-16)
Private Const WS_THICKFRAME = &H40000
Private Const WS_MAXIMIZEBOX = &H10000

Private Declare Function GetWindowLong Lib "user32" _
             Alias "GetWindowLongA" _
            (ByVal hWnd As Long, _
             ByVal nIndex As Long) As Long

Private Declare Function SetWindowLong Lib "user32" _
             Alias "SetWindowLongA" _
            (ByVal hWnd As Long, _
             ByVal nIndex As Long, _
             ByVal dwNewLong As Long) As Long

Private Declare Function FindWindow Lib "user32" _
             Alias "FindWindowA" _
            (ByVal lpClassName As String, _
             ByVal lpWindowName As String) As Long

Private Declare Function DrawMenuBar Lib "user32" _
            (ByVal hWnd As Long) As Long

Private Sub EnableWindowResize(ByVal flg As Boolean)
  Dim hWnd As Long
  Dim WndStyle As Long
  Dim Ret As Long
  
  hWnd = FindWindow("XLMAIN", Application.Caption)
  WndStyle = GetWindowLong(hWnd, GWL_STYLE)
  If flg Then
    WndStyle = WndStyle Or WS_THICKFRAME Or WS_MAXIMIZEBOX
  Else
    WndStyle = WndStyle And (Not WS_THICKFRAME) _
              And (Not WS_MAXIMIZEBOX)
  End If
  Ret = SetWindowLong(hWnd, GWL_STYLE, WndStyle)
  Ret = DrawMenuBar(hWnd)
End Sub

Sub test()
  MsgBox "リサイズ不可にします。"
  EnableWindowResize False
End Sub

Sub test2()
  MsgBox "リサイズ可能にします。"
  EnableWindowResize True
End Sub

うまいこといかんかったらかんにんな。
ほな。
0 hits

【8234】画面の大きさを変更させない ドラゴン 03/10/5(日) 11:45 質問
【8235】Re:画面の大きさを変更させない INA 03/10/5(日) 13:11 回答
【8241】Re:画面の大きさを変更させない ドラゴン 03/10/5(日) 23:28 回答
【8239】Re:画面の大きさを変更させない Kein 03/10/5(日) 23:10 回答
【8240】Re:画面の大きさを変更させない ドラゴン 03/10/5(日) 23:27 回答
【8243】Re:画面の大きさを変更させない Kein 03/10/6(月) 2:59 回答
【8244】Re:画面の大きさを変更させない Kein 03/10/6(月) 3:02 発言
【8251】Re:画面の大きさを変更させない INA 03/10/6(月) 10:05 回答
【8274】Re:画面の大きさを変更させない bykin 03/10/6(月) 18:54 回答
【8280】Re:画面の大きさを変更させない akrin 03/10/7(火) 7:26 回答
【8289】Re:画面の大きさを変更させない akrin 03/10/7(火) 13:42 回答
【8282】Re:画面の大きさを変更させない ドラゴン 03/10/7(火) 9:43 お礼

72947 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free