デスクトップのワークエリアを設定 <TOP>
SystemParametersInfo システム全体に関するパラメータを取得・設定
'================================================================ '= デスクトップのワークエリアを設定 '= (SystemParametersInfo4.bas) '================================================================ #include "Windows.bi" #define LF_FACESIZE 32 Type RECT Left As Long Top As Long Right As Long Bottom As Long End Type #define SPI_GETWORKAREA 48 '主モニターの有効なスクリーンのサイズを取得 #define SPI_SETWORKAREA 47 '主モニターの有効なスクリーンのサイズを設定 #define SPIF_SENDWININICHANGE &H2 '全てのアプリケーションに通知して更新 #define SPIF_UPDATEINIFILE &H1 'ユーザープロファイルの更新を指定 ' システム全体に関するパラメータを取得・設定 Declare Function Api_SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uiAction&, ByVal uiParam&, pvParam As Any, ByVal fWinIni&) Var Shared Text(1) As Object Var Shared Button(1) As Object For i = 0 To 1 Text(i).Attach GetDlgItem("Text" & Trim$(Str$(i + 1))) : Text(i).SetFontSize 14 Button(i).Attach GetDlgItem("Button" & Trim$(Str$(i + 1))) : Button(i).SetFontSize 14 Next i Var Shared rcOrg As RECT '================================================================ '= '================================================================ Declare Sub MainFOrm_Start edecl () Sub MainForm_Start() Text(1).SetWindowText "(0,0)-(640,480)" 'ワークエリアを取得 Ret = Api_SystemParametersInfo(SPI_GETWORKAREA, 0, rcOrg, 0) End Sub '================================================================ '= '================================================================ Declare Sub Button1_on edecl () Sub Button1_on() Var rc As RECT Var Ret As Long 'ワークエリアを指定 rc.Left = 0 rc.Top = 0 rc.Right = 640 rc.Bottom = 480 'ワークエリアを表示 Text(1).SetWindowText "(" & Str$(rc.Left) & "," & Str$(rc.Top) & ")-" & "(" & Str$(rc.Right) & "," & Str$(rc.Bottom) & ")" 'ワークエリアを設定 Ret = Api_SystemParametersInfo(SPI_SETWORKAREA, 0, rc, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE) End Sub '================================================================ '= '================================================================ Declare Sub Button2_on edecl () Sub Button2_on() Var Ret As Long 'ワークエリアを表示 Text(1).SetWindowText "(" & Str$(rcOrg.Left) & "," & Str$(rcOrg.Top) & ")-" & "(" & Str$(rcOrg.Right) & "," & Str$(rcOrg.Bottom) & ")" 'ワークエリアを設定 Ret = Api_SystemParametersInfo(SPI_SETWORKAREA, 0, rcOrg, SPIF_UPDATEINIFILE Or SPIF_SENDWININICHANGE) End Sub '================================================================ '= '================================================================ While 1 WaitEvent Wend Stop End