`
dqifa
  • 浏览: 116323 次
社区版块
存档分类
最新评论

以CodeBlocks为IDE,在wxWidgets中实现窗体透明效果

阅读更多

VC中实现窗体的半透明很是酷毙,也想使用wxWidgets来实现这一效果,经过苦苦搜索始终没有找到解决办法,只好引入API了,经过一段时间的摸索终于搞出来了,感觉还不错,记录下来吧!

 

以下是需要添加的代码(详细代码见附件工程):

1、添加支持API的头文件

 

#include "windows.h"

 

2、实现透明效果的代码:

HWND hwnd = (HWND)GetHandle();
HINSTANCE hInst = LoadLibrary(wxT("User32.DLL"));
if(hInst)
{
    long exStyle = GetWindowLong(hwnd, GWL_EXSTYLE);
    exStyle |= WS_EX_LAYERED;
    SetWindowLong(hwnd, GWL_EXSTYLE, exStyle);

    typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);
    MYFUNC fun = NULL;
    fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
    if(fun)fun(hwnd,0,128,2);
    FreeLibrary(hInst);
};

 

 

 

参考:

 

 

1http://blog.163.com/ar_cn/blog/static/145383085200842711948510/

2http://www.vckbase.com/index.php/wv/186

 

 

  • qq.rar (768.7 KB)
  • 下载次数: 5
  • 大小: 385.6 KB
分享到:
评论
1 楼 dqifa 2012-08-23  
哎,我真笨啊,原来wxwidgets自带的shaped实例中有各种窗口效果的实现,要想用半透明的效果只需一句话:
SetTransparent(128);

相关推荐

Global site tag (gtag.js) - Google Analytics