博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Win32 窗口篇(3)
阅读量:5318 次
发布时间:2019-06-14

本文共 1622 字,大约阅读时间需要 5 分钟。

 

 

1.11 如何显示或隐藏窗口的标题栏

使用ModifyStyle方法改变参数来更改窗体样式

void CDemoDlg::OnTest1() {    //删除标题栏风格    ModifyStyle(WS_CAPTION, 0, SWP_FRAMECHANGED);}void CDemoDlg::OnTest2() {    //添加标题栏风格    ModifyStyle(0, WS_CAPTION, SWP_FRAMECHANGED);    }

 

1.12 如何改变窗口的形状

  1. 用CRgn相关Create方法创建区域形状
  2. 使用SetWindowRgn方法设置窗体区域
void CDemoDlg::OnTest1() {    CRect rect;    GetClientRect(rect);    //创建矩形区域    CRgn rgn;    rgn.CreateRectRgn(rect.left, rect.top, rect.right, rect.bottom);    //设置窗口的区域    SetWindowRgn((HRGN)rgn, TRUE);}

效果:

1.13 如何设置窗口的透明区域

将2个区域合并成一个区域,貌似没啥用

CRect rect1;GetWindowRect(rect1);CRect rect2;GetClientRect(rect2);ClientToScreen(rect2);CRgn rgn1;rgn1.CreateRectRgn(rect1.left, rect1.top, rect1.right, rect1.bottom);CRgn rgn2;    rgn2.CreateRectRgn(rect2.left, rect2.top, rect2.right, rect2.bottom);CRgn rgn;rgn.CreateRectRgn(0, 0, 1, 1);rgn.CombineRgn(&rgn1, &rgn2, RGN_DIFF);//设置窗口区域SetWindowRgn((HRGN)rgn2,TRUE);

 

1.14 如何实现透明窗口

先修改窗体样式,然后调用SetLayeredWindowAttributes方法更改透明度

//添加WS_EX_LAYERED(0x80000)扩展风格ModifyStyleEx(0, 0x80000);::SetLayeredWindowAttributes(GetSafeHwnd(), 0, 128, 2);

The SetLayeredWindowAttributes function sets the opacity and transparency color key of a layered window.

效果:

1.15 如何使窗口闪烁

调用FlashWindow方法,参数True则窗体闪烁一次,False则停止闪烁

void CDemoDlg::OnTest1() {    //设置定时器    SetTimer(1, 1000, NULL);}void CDemoDlg::OnTest2() {    //关闭定时器    KillTimer(1);    //窗口返回原始状态    FlashWindow(FALSE);}void CDemoDlg::OnTimer(UINT nIDEvent) {    if (nIDEvent == 1)    {        //窗口从一种状态闪烁到另一种状态        FlashWindow(TRUE);    }    CDialog::OnTimer(nIDEvent);}

转载于:https://www.cnblogs.com/Clingingboy/archive/2011/03/20/1989324.html

你可能感兴趣的文章
TCP粘包拆包问题
查看>>
SQL Server中利用正则表达式替换字符串
查看>>
POJ 1015 Jury Compromise(双塔dp)
查看>>
论三星输入法的好坏
查看>>
Linux 终端连接工具 XShell v6.0.01 企业便携版
查看>>
JS写一个简单日历
查看>>
Python 发 邮件
查看>>
mysql忘记密码的解决办法
查看>>
全面分析Java的垃圾回收机制2
查看>>
[Code Festival 2017 qual A] C: Palindromic Matrix
查看>>
修改博客园css样式
查看>>
Python3 高阶函数
查看>>
初始面向对象
查看>>
leetcode Letter Combinations of a Phone Number
查看>>
Unity 5.4 测试版本新特性---因吹丝停
查看>>
7.5 文件操作
查看>>
MyEclipse中将普通Java项目convert(转化)为Maven项目
查看>>
node js 安装.node-gyp/8.9.4 权限 无法访问
查看>>
windows基本命令
查看>>
VMware中CentOS设置静态IP
查看>>