55template<BYTE MODE = 0x1F, DWORD PAR = 50>
61 bool m_boIsDoGetParentImage;
76 if ( (m_semitransMode &
_BIT(i)) != 0 )
78 m_Compose(_super::m_bmpButtons[i], parentBitmap);
84 m_Compose(h, parentBitmap);
99 virtual LRESULT
WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
101 if ( message == WM_PAINT )
103 if ( m_boIsDoIniting ) {
return 0; }
104 if ( m_boIsDoGetParentImage )
106 LRESULT rr = _super::WindowProc(message, wParam, lParam);
107 m_boIsDoIniting =
true;
108 m_boIsDoGetParentImage =
false;
111 GetWindowRect(&rect);
112 CWnd* pWnd = GetParent();
113 ASSERTLIB( pWnd != NULL );
115 if ( (pWnd->
GetExStyle() & WS_EX_LAYERED) == 0 )
118 dwMod = WS_EX_LAYERED;
120 pWnd->ScreenToClient(&rect);
121 pWnd->RedrawWindow(&rect);
122 CDC* pDC = pWnd->GetDC();
123 ASSERT( pDC != NULL );
125 parentBitmap.
Set(*pDC, rect);
126 pWnd->ReleaseDC(pDC);
127 m_AllComp(parentBitmap);
130 CWnd* pWnd = _super::GetParent();
134 _super::GetWindowRect(rect);
135 pWnd->ScreenToClient(rect);
136 m_AllComp(bi.
Cut(rect));
138 m_boIsDoIniting =
false;
142 return _super::WindowProc(message, wParam, lParam);
154 : _super(), m_boIsDoGetParentImage(true), m_boIsDoIniting(false)
155 , m_semitransMode(semitransMode), m_parsent(parsent)
167 m_boIsDoGetParentImage =
true;
#define loop(VAR, CNT)
loop構文.
BOOL ModifyStyleEx(DWORD dwRemove, DWORD dwAdd, UINT nFlags=0)
[設定] ウィンドウ拡張スタイル変更.
DWORD GetExStyle(void) const
[取得] ウィンドウ拡張スタイル取得.
bool SetFromClient(HWND hWnd, const RECT &rect, COLORREF backColor=CLR_INVALID)
[設定] クライアントからイメージ設定.
bool Attach(CBitmapHandle bmp)
[設定] アタッチ.
CBitmapImage Cut(const RECT &rect, int cx=0, int cy=0) const
[取得] イメージ取り出し.
bool Set(int cx, int cy, COLORREF color=CLR_INVALID)
[設定] イメージ設定.
CBitmapHandle GetBitmapHandle(void)
[取得] ビットマップハンドル取得
bool InsertOnAlphaBlend(int x, int y, const CBitmapImage &bmpimg, int parsent=100, int cx=0, int cy=0)
[挿入] 半透過処理付イメージ挿入.
bool SetLayeredWindow(CWnd *pWnd, COLORREF crKey=0, BYTE bAlpha=255, DWORD dwFlags=E_Alpha|E_SetLayeredStyle)
[設定] SetLayeredWindow.
@ E_SetLayeredStyle
WS_EX_LAYERED スタイルを付加します。
@ E_Alpha
bAlpha を使って、レイヤードウィンドウの不透明度を決定します。