goo blog サービス終了のお知らせ 

プログラミングのメモ帳(C/C++/HSP)

日々のプログラミングで気づいた点や小技集を紹介します。(Windows 10/XP/Vista、VC2017、HSP)

拡張ウインドウ・スタイルの変更関数

2011年12月08日 00時10分00秒 | ウインドウ関連

拡張ウインドウ・スタイルの変更関数は次の手順で行います。(戻る)

  1. 拡張ウインドウ・スタイルの取得(GetWindowLong)
  2. 拡張ウインドウ・スタイルのリセット(lReset)
  3. 拡張ウインドウ・スタイルのセット(lSet)
  4. 拡張ウインドウ・スタイルの設定(SetWindowLong)
  5. 拡張ウインドウ・スタイルの反映(SetWindowPos)

SetWindowLong 関数で拡張ウインドウ・スタイルを設定しただけでは反映しません。
反映させるには必ず SetWindowPos 関数を実行して下さい。

プロトタイプ宣言

LONG GetWindowLong(
    HWND    hWnd,               // ウインドウのハンドル
    int     nIndex              // 取得するデータ値のインデックス
);

LONG SetWindowLong(
    HWND    hWnd,               // ウインドウのハンドル
    int     nIndex,             // 設定するデータ値のインデックス
    LONG    dwNewLong           // 新しい値
);

BOOL SetWindowPos(
    HWND    hWnd,               // ウインドウのハンドル
    HWND    hWndInsertAfter,    // 配置順序のハンドル
    int     X,                  // 横方向の位置
    int     Y,                  // 縦方向の位置
    int     cx,                 // 幅
    int     cy,                 // 高さ
    UINT    uFlags              // ウインドウ位置のオプション
);

サンプル

// 拡張ウインドウ・スタイルの変更
VOID funcModifyStyleEx( HWND hWnd, UINT uID, LONG lReset, LONG lSet )
{
    LONG lExStyle;
    
    if ( uID != 0 ){
        hWnd = GetDlgItem( hWnd, uID );
    }
    lExStyle  = GetWindowLong( hWnd, GWL_EXSTYLE );
    lExStyle &= ~lReset;
    lExStyle |=  lSet;
    lExStyle  = SetWindowLong( hWnd, GWL_EXSTYLE, lExStyle );
    SetWindowPos( hWnd, NULL, 0, 0, 0, 0, (SWP_NOMOVE|SWP_NOSIZE|SWP_NOZORDER|SWP_FRAMECHANGED) );
}

使い方

// WS_EX_STATICEDGE属性→WS_EX_CLIENTEDGE属性
funcModifyStyleEx( hWnd, SID_TEXT01, WS_EX_STATICEDGE, WS_EX_CLIENTEDGE );

// WS_EX_CLIENTEDGE属性→WS_EX_STATICEDGE属性
funcModifyStyleEx( hWnd, SID_TEXT01, WS_EX_CLIENTEDGE, WS_EX_STATICEDGE );
  • hWnd が対象のウインドウ・ハンドルです。
  • uID がコントロールのIDですが、ウインドウを操作する時には uID=0 にして操作します。
  • 上記の使い方では WS_EX_STATICEDGE 属性の代わりに WS_EX_CLIENTEDGE 属性に変更してます。

関連記事



コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ウインドウ・スタイルの変更関数 | トップ | 仮想キーの状態を取得 »
最新の画像もっと見る

コメントを投稿

ウインドウ関連」カテゴリの最新記事