讓窗口顯示為半透明的效果。
工具/原料
Microsoft Visual Studio 2010
或者Microsoft Visual C++6.0
方法/步驟
建立一個基於對話框的應用程序,應用程序命名為Test
在工作區選擇ClassView標籤,展開Test classes CTest,雙擊OnInitDialog()函數。
在OnInitDialog()函數添加以下代碼:
//設置半透明對話框
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);
}
不做透明化處理的界面運行如下:
運行程序如下,窗口的顯示為半透明:
注意事項
注意加載動態鏈接庫的方法