デスクトップのワークエリアを設定          <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