フォームの最大化2題          <TOP>


SetWindowPosを使いFrameを含めた最大化とMaximizeWindowでの最大化

SetWindowPos ウィンドウのサイズ、位置、Zオーダーを設定

GetSystemMetrics システムメトリック値とシステム現在の構成を取得

 

左:初期状態    中:SetWindowPosによる最大化(2倍に拡大)    右:MaximizeWindowによる最大化(2倍に拡大)

  

 

'================================================================
'= フォーム最大化
'=    (Maximize.bas)
'================================================================
#include "Windows.bi"

' ウィンドウのサイズ、位置、および Z オーダーを設定
Declare Function Api_SetWindowPos& Lib "user32" Alias "SetWindowPos" (ByVal hWnd&, ByVal hWndInsertAfter&, ByVal X&, ByVal Y&, ByVal CX&, ByVal CY&, ByVal uFlags&)

' さまざまなシステムメトリックの値とシステムの現在の構成を取得
Declare Function Api_GetSystemMetrics& Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex&)

#define SM_CXSCREEN 0                   'ディスプレイの幅
#define SM_CYSCREEN 1                   'ディスプレイ高さ
#define HWND_TOP 0                      'ウィンドウをZオーダーの一番上に配置する
#define SWP_SHOWWINDOW &H40             'ウィンドウを表示する

'================================================================
'= SetWindowPosでの最大化
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var lWidth As Long
    Var lHeight As Long
    Var Ret As Long
    
    If IsMaximized Then
        RestoreWindow
    End If
   
    lWidth = Api_GetSystemMetrics(SM_CXSCREEN)
    lHeight = Api_GetSystemMetrics(SM_CYSCREEN)
   
    Ret = Api_SetWindowPos(GethWnd, HWND_TOP, 0, 0, lWidth, lHeight, SWP_SHOWWINDOW)
End Sub

'================================================================
'= F-BASIC通常の最大化
'================================================================
Declare Sub Button2_on edecl ()
Sub Button2_on()
    MaximizeWindow
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End