TNB Library
公開メンバ関数 | 静的公開メンバ関数 | 全メンバ一覧
CThemeStylePartsDrawer クラス

テーマスタイルWINDOWパーツ描画クラス [詳解]

#include <TnbThemeStylePartsDrawer.h>

+ CThemeStylePartsDrawer の継承関係図

公開メンバ関数

 CThemeStylePartsDrawer (void)
 コンストラクタ [詳解]
 
virtual bool DrawButtonControl (HDC hdc, LPRECT _lprc, UINT uState) const
 [描画] ボタンコントロール描画. [詳解]
 
virtual bool DrawEdge (HDC hdc, LPCRECT lprc, UINT edge, UINT grfFlags) const
 [描画] 長方形の辺を描画. [詳解]
 
virtual bool DrawFocusRect (HDC hdc, LPCRECT lpRect) const
 [描画] フォーカス枠描画. [詳解]
 
virtual void GetEdgeOffset (POINT &_po) const
 [取得] エッジの幅、高さ. [詳解]
 
virtual void GetPushedOffset (POINT &_po) const
 [取得] 押下状態のずれ. [詳解]
 
void ThemeChanged (void)
 [設定] テーマ変更. [詳解]
 
 ~CThemeStylePartsDrawer (void)
 デストラクタ [詳解]
 

静的公開メンバ関数

static HRESULT CloseThemeData (HTHEME hTheme)
 [処理] Closes the theme data handle. [詳解]
 
static HRESULT DrawThemeBackground (HTHEME hTheme, HDC hdc, int iPartId, int iStateId, const RECT *pRect, OPTIONAL const RECT *pClipRect)
 [描画] Draws the background image defined by the visual style for the specified control part. [詳解]
 
static bool IsThemeActive (void)
 [確認] Tests if a visual style for the current application is active. [詳解]
 
static HTHEME OpenThemeData (HWND hWnd, LPCWSTR pszClassList)
 [処理] Opens the theme data for a window and its associated class. [詳解]
 

詳解

テーマスタイルWINDOWパーツ描画クラス

現在のテーマにあったパーツを描画します。
todo:
現在 Button以外は標準のものが描画されます。
必要ファイル
TnbThemeStylePartsDrawer.h
日付
07/12/21 新規作成
08/02/21 DrawButtonControl() の戻り値に誤り。修正。

TnbThemeStylePartsDrawer.h108 行目に定義があります。

構築子と解体子

◆ CThemeStylePartsDrawer()

コンストラクタ

TnbThemeStylePartsDrawer.h128 行目に定義があります。

◆ ~CThemeStylePartsDrawer()

デストラクタ

TnbThemeStylePartsDrawer.h140 行目に定義があります。

関数詳解

◆ CloseThemeData()

static HRESULT CloseThemeData ( HTHEME  hTheme)
static

[処理] Closes the theme data handle.

引数
hThemeHandle to a window's specified theme data. Use OpenThemeData to create an HTHEME.
戻り値
true成功.
false失敗.

TnbThemeStylePartsDrawer.h330 行目に定義があります。

◆ DrawButtonControl()

virtual bool DrawButtonControl ( HDC  hdc,
LPRECT  _lprc,
UINT  uState 
) const
virtual

[描画] ボタンコントロール描画.

指定されたタイプとスタイルを備える、ボタンコントロールを描画します。

引数
[in]hdcコントロールの描画に使いたいデバイスコンテキストのハンドルを指定します。 NULL を指定すると、実際に描画する大きさを lprc に返します。
[in,out]_lprc長方形の論理座標を保持する 1 個の RECT 構造体へのポインタを指定します。
[in]uStateフレームコントロールの初期状態を指定します。 IPartsDrawable::DrawButtonControl() 参照。
戻り値
true成功。
false失敗。 ::GetLastError() でエラー情報を取得できます。

CStandardPartsDrawerを再実装しています。

TnbThemeStylePartsDrawer.h168 行目に定義があります。

◆ DrawEdge()

virtual bool DrawEdge ( HDC  hdc,
LPCRECT  lprc,
UINT  edge,
UINT  grfFlags 
) const
virtualinherited

[描画] 長方形の辺を描画.

引数
hdcデバイスコンテキストのハンドルを指定します。
lprc長方形の論理座標を保持する 1 個の RECT 構造体へのポインタを指定します。
edge辺の内側と外側の描画方法を指定します。内側の境界フラグから 1 つを、外側の境界フラグからもう 1 つを選び、組み合わせて指定します。
grfFlags境界の種類を指定します。
戻り値
true成功。
false失敗。 ::GetLastError() でエラー情報を取得できます。

IPartsDrawableを実装しています。

TnbPartsDrawable.h153 行目に定義があります。

◆ DrawFocusRect()

virtual bool DrawFocusRect ( HDC  hdc,
LPCRECT  lpRect 
) const
virtualinherited

[描画] フォーカス枠描画.

フォーカスが存在することをユーザーに示すために使われる長方形の枠を描画します。

引数
hdcデバイスコンテキストのハンドルを指定します。
lpRect長方形の論理座標を保持する 1 個の RECT 構造体へのポインタを指定します。
戻り値
true成功。
false失敗。 ::GetLastError() でエラー情報を取得できます。

IPartsDrawableを実装しています。

TnbPartsDrawable.h193 行目に定義があります。

◆ DrawThemeBackground()

static HRESULT DrawThemeBackground ( HTHEME  hTheme,
HDC  hdc,
int  iPartId,
int  iStateId,
const RECT *  pRect,
OPTIONAL const RECT *  pClipRect 
)
static

[描画] Draws the background image defined by the visual style for the specified control part.

引数
hThemeHandle to a window's specified theme data. Use OpenThemeData to create an HTHEME.
hdcHandle to a device context (HDC) used for drawing the theme-defined background image.
iPartIdValue of type int that specifies the part to draw. See Parts and States.
iStateIdValue of type int that specifies the state of the part to draw. See Parts and States.
pRectPointer to a RECT structure that contains the rectangle, in logical coordinates, in which the background image is drawn.
pClipRectPointer to a RECT structure that contains a clipping rectangle. This parameter may be set to NULL.
戻り値
true成功.
false失敗.

TnbThemeStylePartsDrawer.h356 行目に定義があります。

◆ GetEdgeOffset()

virtual void GetEdgeOffset ( POINT &  _po) const
virtualinherited

[取得] エッジの幅、高さ.

エッジの幅、高さを返します。

引数
[out]_po幅、高さ

IPartsDrawableを実装しています。

TnbPartsDrawable.h214 行目に定義があります。

◆ GetPushedOffset()

virtual void GetPushedOffset ( POINT &  _po) const
virtualinherited

[取得] 押下状態のずれ.

押下した時に、コントロールの上に表示する内容をずらす方向を得ることが出来ます。

引数
[out]_poずれ

IPartsDrawableを実装しています。

TnbPartsDrawable.h203 行目に定義があります。

◆ IsThemeActive()

static bool IsThemeActive ( void  )
static

[確認] Tests if a visual style for the current application is active.

戻り値
trueA visual style is enabled, and windows with visual styles applied should call OpenThemeData to start using theme drawing services.
lalseA visual style is not enabled, and the window message handler does not need to make another call to IsThemeActive until it receives a WM_THEMECHANGED message.

TnbThemeStylePartsDrawer.h282 行目に定義があります。

◆ OpenThemeData()

static HTHEME OpenThemeData ( HWND  hWnd,
LPCWSTR  pszClassList 
)
static

[処理] Opens the theme data for a window and its associated class.

引数
hWndHandle of the window for which theme data is required.
pszClassListPointer to a string that contains a semicolon-separated list of classes.
戻り値
OpenThemeData tries to match each class, one at a time, to a class data section in the active theme. If a match is found, an associated HTHEME handle is returned. If no match is found NULL is returned.

TnbThemeStylePartsDrawer.h309 行目に定義があります。

◆ ThemeChanged()

void ThemeChanged ( void  )

[設定] テーマ変更.

覚え書き
WM_THEMECHANGED を受けたら、本メソッドをコールするようにしてください。

TnbThemeStylePartsDrawer.h149 行目に定義があります。