透明,半透明窗体
来源:互联网 发布:深圳警察知乎 编辑:程序博客网 时间:2024/05/16 11:32
首先,用生成向导建立个基于对话框的程序框架,取名为PartTransparent
第二,重写BOOL CPartTransparentDlg::OnInitDialog(),也就是重写,对话框类的OnInitDialog()这个函数,在里面,return TRUE;前面加入下面的代码:
SetWindowLong(GetSafeHwnd()
,GWL_EXSTYLE
,GetWindowLong(GetSafeHwnd(),GWL_EXSTYLE)^0x80000);
HINSTANCE hInst = LoadLibrary("User32.DLL");
if (hInst)
{
typedef BOOL (WINAPI * MYFUNC)(HWND,COLORREF,BYTE,DWORD);
MYFUNC fun = NULL;
fun = (MYFUNC)GetProcAddress(hInst,"SetLayeredWindowAttributes");
if (fun)
{
fun(this->GetSafeHwnd(),0,128,2);
}
FreeLibrary(hInst);
}
SetLayeredWindowAttributes函数:
hwnd是透明窗体的句柄,
crKey为颜色值,
bAlpha是透明度,取值范围是[0,255],
dwFlags是透明方式,可以取两个值:
hwnd是透明窗体的句柄,
crKey为颜色值,
bAlpha是透明度,取值范围是[0,255],
dwFlags是透明方式,可以取两个值:
当取值为LWA_ALPHA时,crKey参数无效,bAlpha参数有效;
当取值为LWA_COLORKEY时,bAlpha参数有效而窗体中的所有颜色为crKey的地方将变为透明。
LWA_ALPHA = 0x2 LWA_COLORKEY=0x1
要使使窗体拥有透明效果,首先要有WS_EX_LAYERED扩展属性 (旧的sdk没有定义这个属性,所以可以直接指定为0x80000). WS_EX_LAYERED = 0x80000
- 透明,半透明窗体
- VC半透明透明子窗体
- au3 窗体透明及半透明
- 设置窗体及空间透明、半透明
- VB无所不能之四:制作透明和半透明窗体
- 半透明窗体
- 半透明窗体
- VC++窗体实现由完全透明到半透明的渐变显示
- css透明与半透明
- 控件透明与半透明
- Android透明,半透明Transparent
- Android-透明半透明效果
- QT 透明 半透明 效果
- 窗体透明
- 透明窗体
- 透明窗体
- 透明窗体
- 透明窗体
- OSG与CEGUI结合
- 多样式的用户交互对话框
- 向ACCESS中的"时间/日期"字段中插入DateTime.Now时出现“标准表达式中数据类型不匹配。”错误的解决办法
- jquer $.get() $.post()
- Linux环境下查看服务器硬件信息
- 透明,半透明窗体
- 软件单元测试(Software Unit Testing)
- NetBean IDE如何变成英文界面?
- .net 4.0海报
- 使用ADOX创建Access数据库和表
- POJ_1002
- CSS 样式important和*和_:兼容IE、Firefox、Opera和Safari CSS的解决方法及CSS差别
- 关键字 - this 和base
- Ubuntu10.04下手动安装gcc4.5.0