在OnInitDialog()中添加:
ModifyStyleEx(0,WS_EX_LAYERED);
SetLayeredWindowAttributes( RGB(255,0,255), 255, LWA_COLORKEY | LWA_ALPHA);
第一个参数控制哪种颜色透明,第二个参数为其他颜色的透明度。
设置窗体样式还有一种方法:
DWORD dwExStyle=GetWindowLong(this->m_hWnd,GWL_EXSTYLE);
if((dwExStyle&WS_EX_LAYERED )!=WS_EX_LAYERED )
SetWindowLong(this->m_hWnd,GWL_EXSTYLE,dwExStyle^(WS_EX_LAYERED) );//设置窗体样式
函数原型:
BOOL SetLayeredWindowAttributes(
HWND hwnd, // handle to the layered window
COLORREF crKey, // specifies the color key
BYTE bAlpha, // value for the blend function
DWORD dwFlags // action
);
LWA_ALPHA被设置的话,通过bAlpha决定透明度。
LWA_COLORKEY被设置的话,则指定被透明掉的颜色为crKey,其他颜色则正常显示。