vc透明对话框

来源:互联网 发布:caxa运动仿真软件 编辑:程序博客网 时间:2024/04/29 20:25

在OnInitDialog()中添加代码

1、vs2003以上

//VS2003以上版本  SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(GetSafeHwnd(),GWL_EXSTYLE)|WS_EX_LAYERED);  SetLayeredWindowAttributes(0,200,LWA_ALPHA);

2、vc6.0

SetWindowLong(GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(GetSafeHwnd(),GWL_EXSTYLE)|0x00080000);  HINSTANCE hInst = LoadLibrary(_T("User32.dll"));  if (hInst)  {      typedef BOOL (WINAPI *MyFun)(HWND,COLORREF,BYTE,DWORD);      MyFun myfun = NULL;      myfun = (MyFun)GetProcAddress(hInst, "SetLayeredWindowAttributes");    //"190"为设置的透明度,范围0-255, 0完全透明,255不透明    if (myfun) myfun(GetSafeHwnd(),0,190,2);      FreeLibrary(hInst);  } 

注:这种添加方式为对话框和上面的所有控件一起透明,然而实际使用中,多数情况下想让对话框背景透明,静态文本背景透明,而对话框上的所有控件不透明,这种实现方法在下一篇文章中介绍。

0 0
原创粉丝点击