BOOL COperateDlgDlg::OnInitDialog()
{
...
// TODO: 在此添加額外的初始化代碼
//設置窗口透明度
SetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE)^0x80000);
HINSTANCE hInst = LoadLibrary("User32.DLL"); // 加載庫文件
if(hInst)
{
typedef BOOL (WINAPI* MYFUNC)(HWND, COLORREF, BYTE, DWORD);
MYFUNC func = NULL; // 函數指針
// 取得SetLayeredWindowAttributes()函數指針
func = (MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
// 使用SetLayeredWindowAttributes函數設定透明度
if(func)
func(this->GetSafeHwnd(), RGB(0,0,0), 200, 0x2);
FreeLibrary(hInst);
}
// 設置窗口形狀
CRect Rect;
CRgn newRgn;
// 獲得當前窗體區域
GetClientRect(&Rect);
// 設置橢圓形區域
newRgn.CreateEllipticRgn(0,0,Rect.Width(), Rect.Height());
::SetWindowRgn(this->m_hWnd, (HRGN)newRgn, TRUE);
return TRUE; // 除非將焦點設置到控件,否則返回 TRUE
}