アイコンタイトルフォントをイタリック体に          <TOP>


SystemParametersInfo システム全体に関するパラメータを取得・設定
SPI_GETICONMETRICS(45) アイコンに関する寸法情報を定義するICONMETRICS構造体を取得
SPI_SETICONMETRICS(46) アイコンに関する寸法情報を設定
SPIF_UPDATEINIFILE(&H1) 新しい設定をユーザープロファイルに書き込む
SPIF_SENDWININICHANGE(&H2) 実行中のプログラムに更新メッセージを送る
SPIF_SENDCHANGE(&H2) 実行中のプログラムに更新メッセージを送る(SPIF_SENDWININICHANGE)
 

 

'================================================================
'= アイコンタイトルフォントをイタリック体に
'    (IconMetrics.bas)
'================================================================
#include "Windows.bi"

#define LF_FACESIZE 32

Type LOGFONT
    lfHeight            As Long         '文字セルまたは文字の高さ
    lfWidth             As Long         '平均文字幅
    lfEscapement        As Long         '文字送りの方向とX軸との角度
    lfOrientation       As Long         'ベースラインとX軸との角度
    lfWeight            As Long         'フォントの太さ
    lfItalic            As Byte         'イタリック体指定
    lfUnderline         As Byte         '下線付き指定
    lfStrikeOut         As Byte         '打ち消し線付き指定
    lfCharSet           As Byte         'キャラクタセット
    lfOutPrecision      As Byte         '出力精度
    lfClipPrecision     As Byte         'クリッピングの精度
    lfQuality           As Byte         '出力品質
    lfPitchAndFamily    As Byte         'ピッチとファミリ
    lfFaceName(LF_FACESIZE - 1) As Byte 'フォント名
End Type

Type ICONMETRICS
    cbSize       As Long
    iHorzSpacing As Long
    iVertSpacing As Long
    iTitleWrap   As Long
    lfFont       As LOGFONT
End Type

#define SPI_GETICONMETRICS 45           'アイコンに関する寸法情報を定義するICONMETRICS構造体を取得
#define SPI_SETICONMETRICS 46           'アイコンに関する寸法情報を設定
#define SPIF_UPDATEINIFILE &H1          '新しい設定をユーザープロファイルに書き込む
#define SPIF_SENDWININICHANGE &H2       '実行中のプログラムに更新メッセージを送る
#define SPIF_SENDCHANGE &H2             '実行中のプログラムに更新メッセージを送る(SPIF_SENDWININICHANGE)

' システム全体に関するパラメータを取得・設定
Declare Function Api_SystemParametersInfo& Lib "user32" Alias "SystemParametersInfoA" (ByVal uiAction&, ByVal uiParam&, pvParam As Any, ByVal fWinIni&)

Var Shared Text1 As Object
Var Shared Button1 As Object

Text1.Attach GetDlgItem("Text1") : Text1.SetFontSize 14
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var im As ICONMETRICS
    Var Ret As Long

    'アイコンの表示要素を定義する構造体を初期化
    im.cbSize = Len(im)

    'アイコンの表示要素を取得
    Ret = Api_SystemParametersInfo(SPI_GETICONMETRICS, Len(im), im, 0)

    'アイコンの表示要素を指定
    im.lfFont.lfItalic = im.lfFont.lfItalic Xor 1

    'アイコンの表示要素を設定
    Ret = Api_SystemParametersInfo(SPI_SETICONMETRICS, Len(im), im, SPIF_UPDATEINIFILE Or SPIF_SENDCHANGE)

    If im.lfFont.lfItalic = 0 Then
        Text1.SetWindowText "アイコンフォントは標準です。"
    Else
        Text1.SetWindowText "アイコンフォントはイタリック体です。"
    End If
End Sub

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