先说一下,VC6.0要先更新SDK,不然编译不通过,建议使用VS2008
BOOL SetTransparent(HWND hDlg, BOOL bTransparent) { LONG lStyle; lStyle = GetWindowLong(hDlg, GWL_EXSTYLE); if (bTransparent) { SetWindowLong(hDlg, GWL_EXSTYLE, lStyle | WS_EX_TRANSPARENT | WS_EX_LAYERED); SetLayeredWindowAttributes(hDlg, 0, 255, LWA_ALPHA); //设置半透明 SetWindowPos(hDlg, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); return TRUE; } else { lStyle &= ~WS_EX_TRANSPARENT; SetWindowLong(hDlg, GWL_EXSTYLE, lStyle); SetLayeredWindowAttributes(hDlg, 0, 255, LWA_ALPHA); SetWindowPos(hDlg, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE); return FALSE; } }
BOOL CdsdfsdDlg::OnInitDialog() { SetTransparent(this->m_hWnd,TRUE); }