MFC應用實例:[17]半透明對話框?

讓窗口顯示為半透明的效果。

工具/原料

Microsoft Visual Studio 2010

或者Microsoft Visual C++6.0

方法/步驟

建立一個基於對話框的應用程序,應用程序命名為Test

MFC應用實例:[17]半透明對話框

在工作區選擇ClassView標籤,展開Test classes CTest,雙擊OnInitDialog()函數。

MFC應用實例:[17]半透明對話框

在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);

}

MFC應用實例:[17]半透明對話框

不做透明化處理的界面運行如下:

MFC應用實例:[17]半透明對話框

運行程序如下,窗口的顯示為半透明:

MFC應用實例:[17]半透明對話框

注意事項

注意加載動態鏈接庫的方法

對話框, 實例, 半透明,
相關問題答案