本人一般不做 UI 的,当然除了一些小工具的简单界面。不过由于工具做多了,对分割窗口之类的东东也都有所涉猎,尽管是看看文档,依葫芦画瓢。
今天有找到个 API 函数实现窗体的透明,原来微软提供的接口还蛮丰富的吗,:-)
半透明对话框在OnInitDialog()中添加以下代码即可:
// 透明窗口
//加入WS_EX_LAYERED扩展属性
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 fun = NULL;
//取得SetLayeredWindowAttributes函数指针
fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
if(fun)fun(this->GetSafeHwnd(), 0, 220, 2);
FreeLibrary(hInst);
}