フォームの最大化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