TNB Library
TnbMfcEasyCustomWindowFrame.h
[詳解]
1#pragma once
12#include "TnbBitmapImage.h"
13
14
15
16//TNB Library
17namespace TNB
18{
19
20
21
33{
34public:
35
41 CEasyCustomWindowFrame(bool isDisableVista = false)
42 : m_window(::GetSysColor(COLOR_BTNTEXT), ::GetSysColor(COLOR_BTNFACE))
43 , m_activeCaption(::GetSysColor(COLOR_CAPTIONTEXT), ::GetSysColor(COLOR_ACTIVECAPTION))
44 , m_inactiveCaption(::GetSysColor(COLOR_INACTIVECAPTIONTEXT), ::GetSysColor(COLOR_INACTIVECAPTION))
45 , m_baseColor(RGB(255, 255, 255)), m_isDisableVista(isDisableVista)
46 {
47 }
48
55 void SetWindowColor(COLORREF text, COLORREF back)
56 {
57 m_window.text = text;
58 m_window.back = back;
59 }
60
65 void SetBaseColor(COLORREF c)
66 {
67 m_baseColor = c;
68 }
69
76 void SetCaptionColor(COLORREF text, COLORREF back, bool isActive)
77 {
78 if ( isActive )
79 {
80 m_activeCaption.text = text;
81 m_activeCaption.back = back;
82 }
83 else
84 {
85 m_inactiveCaption.text = text;
86 m_inactiveCaption.back = back;
87 }
88 }
89
98 void Hook(CBitmapHandle frame, CBitmapHandle button, int num = 4)
99 {
101 CBitmapImage bi;
102 CWindowCaptionDrawer ttd(NULL);
103 ttd.SetBarColor(m_activeCaption.back, m_inactiveCaption.back);
104 ttd.SetTextColor(m_activeCaption.text, m_inactiveCaption.text);
105 cwfm.SetTitleBitmap(ttd);
106 bi.Set(frame);
107 bi.ChangePixelColor(m_baseColor, m_window.back);
108 cwfm.SetFrameBitmap(bi);
109 cwfm.SetFrameTransColor(CLR_AUTOSELECT);
110 bi.Set(button);
111 bi.ChangePixelColor(RGB(0, 0, 0), m_window.back);
112 cwfm.SetCloseButtonBitmap(CPoint(CalcScaleX(-6), CalcScaleY(5)), bi, num, CLR_AUTOSELECT);
113 bi.Set(button);
114 bi.ChangePixelColor(RGB(255, 0, 0), RGB(230, 0, 0), RGB(0, 255, 0));
115 bi.ChangePixelColor(RGB(0, 0, 0), m_window.back);
116 cwfm.SetMaximumButtonBitmap(CPoint(CalcScaleX(-23), CalcScaleY(5)), bi, num, CLR_AUTOSELECT);
117 cwfm.SetRestoreButtonBitmap(CPoint(CalcScaleX(-23), CalcScaleY(5)), bi, num, CLR_AUTOSELECT);
118 bi.Set(button);
119 bi.ChangePixelColor(RGB(0, 0, 255), RGB(0, 255, 0), RGB(255, 0, 0));
120 bi.ChangePixelColor(RGB(0, 0, 0), m_window.back);
121 cwfm.SetMinimumButtonBitmap(CPoint(CalcScaleX(-40), CalcScaleY(5)), bi, num, CLR_AUTOSELECT);
122 cwfm.SetTextColor(m_window.text);
123 cwfm.Hook(m_isDisableVista);
124 }
125
126private:
127
129 struct TPair
130 {
131 COLORREF text;
132 COLORREF back;
134 TPair(COLORREF t, COLORREF b) : text(t), back(b)
135 {
136 }
137 };
138 COLORREF m_baseColor;
139 TPair m_window;
140 TPair m_activeCaption;
141 TPair m_inactiveCaption;
142 bool m_isDisableVista;
143};
144
145
146
147}; // TNB
ビットマップイメージ管理関係のヘッダ
カスタムウィンドウフレームマスターのヘッダ
HBITMAP型ハンドルハンドル
ビットマップイメージ管理クラス
int ChangePixelColor(COLORREF targetColor, COLORREF drawColor)
[処理] カラー変更.
bool Set(int cx, int cy, COLORREF color=CLR_INVALID)
[設定] イメージ設定.
簡単なカスタムウィンドウフレームクラス.
void Hook(CBitmapHandle frame, CBitmapHandle button, int num=4)
[設定] カスタムウィンドウフレーム.
void SetBaseColor(COLORREF c)
[設定] ベース色設定.
void SetCaptionColor(COLORREF text, COLORREF back, bool isActive)
[設定] キャプション色設定.
CEasyCustomWindowFrame(bool isDisableVista=false)
コンストラクタ
void SetWindowColor(COLORREF text, COLORREF back)
[設定] ウィンドウ色設定.
カスタムウィンドウフレームマスタークラス.
void Hook(bool isDisableVista=false)
[設定] フック.
void SetFrameBitmap(CBitmapHandle bmp)
[設定] フレームビットマップ設定
void SetMinimumButtonBitmap(const POINT &pos, CBitmapHandle bmp, int num=4, COLORREF color=CLR_INVALID)
[設定] Minimumボタン設定
void SetRestoreButtonBitmap(const POINT &pos, CBitmapHandle bmp, int num=4, COLORREF color=CLR_INVALID)
[設定] Restoreボタン設定
void SetFrameTransColor(COLORREF color=CLR_AUTOSELECT)
[設定] 透過色指定
void SetMaximumButtonBitmap(const POINT &pos, CBitmapHandle bmp, int num=4, COLORREF color=CLR_INVALID)
[設定] Maximumボタン設定
void SetTitleBitmap(const IDrawable &draw)
[設定] タイトルバー描画情報指定.
void SetCloseButtonBitmap(const POINT &pos, CBitmapHandle bmp, int num=4, COLORREF color=CLR_INVALID)
[設定] Closeボタン設定
void SetTextColor(COLORREF color)
[設定] テキスト色.
ウィンドウタイトル描画情報クラス
void SetTextColor(COLORREF c1, COLORREF c2)
[設定] 文字の色指定.
void SetBarColor(COLORREF c1, COLORREF c2)
[設定] バーの色指定.
TNB Library
Definition: TnbDoxyTitle.txt:2