labwindows制作特殊图形面板
可以利用labwindows制作特殊图形的面板,比如圆形,椭圆,正方形等等。
制作步骤如下:
- 获取panel所在窗口句柄
DWND hwnd;
GetPanelAttribute(panel,control,ATTR_SYSTEM_HANDLE,(int*)&hwnd); - 获取标题栏高度
int titleLen=GetsyetemMetrics(SM_CYCAPTION); - 获得窗口大小
RECT FullRect;
GetWindowRect(hwnd,FullRect); - 获取客户区大小
RECT ClientRect;
GetClientRect(hwnd,ClientRect); - 制作特殊形状图形
A:椭圆:CreateEllipticRgn(left,top,right,bottom);
B:带圆角的长方形:CreateRoundRectRgn(left,top,right,bottom,angle,angle);
C:多边形区域:CreatePloygonRgn
D:可重叠多边形区域:CreatePloyPloygonRgn
D:合并两个区域CombineRgn(Dis,Sor1,Sor2,Mode);其中MODE有愈多选项,根据 不同选项得到结果不同
E:删除合并后其他区域的GDI: DeleteObject - 制作特殊区域 SetWindowRgn(hwnd,RECT rect,TURE);
GetPanelAttribute(panel,ATTR_SYSTEM_WINDOW_HANDLE,(int*)&hwnd);GetPanelAttribute(panel,ATTR_TITLEBAR_VISIBLE,&titlebar);if(titlebar){TitlebarHeight=GetSystemMetrics(SM_CYCAPTION);}GetWindowRect(hwnd,&WindowRect);GetClientRect(hwnd,&ClientRect); fullheight=WindowRect.bottom-WindowRect.top;fullwidth=WindowRect.right-WindowRect.left;verticalborderwidth =(fullheight-TitlebarHeight-ClientRect.bottom)/2;horizentalborderwidth=(fullwidth-ClientRect.right)/2;ShapeRect.left=horizentalborderwidth;ShapeRect.top=TitlebarHeight+verticalborderwidth;ShapeRect.right=horizentalborderwidth+ClientRect.right;ShapeRect.bottom=horizentalborderwidth+ClientRect.bottom+TitlebarHeight;int arcvalue;
//以下绘制区域重复,实际代码中任选其一
//绘制椭圆区域 winrgn=CreateEllipticRgn(ShapeRect.left,ShapeRect.top,ShapeRect.right,ShapeRect.bottom); SetWindowRgn(hwnd,winrgn,1);//绘制圆角矩形区域GetCtrlVal(panel,PANEL_NUMERICGAUGE,&arcvalue);winrgn=CreateRoundRectRgn(ShapeRect.left,ShapeRect.top,ShapeRect.right,ShapeRect.bottom,arcvalue,arcvalue);SetWindowRgn(hwnd,winrgn,TRUE);//绘制两个圆合并区域GetCtrlVal(panel,PANEL_NUMERICGAUGE,&arcvalue); winrgn=CreateEllipticRgn(ShapeRect.left,ShapeRect.top,ShapeRect.bottom,ShapeRect.right);innerrgn=CreateEllipticRgn(ShapeRect.left+arcvalue,ShapeRect.top+arcvalue,ShapeRect.bottom-arcvalue,ShapeRect.right-arcvalue);CombineRgn(winrgn,winrgn,innerrgn,RGN_DIFF);DeleteObject(innerrgn);SetWindowRgn(hwnd,winrgn,TRUE);
labwindows制作特殊图形面板相关推荐
- 菱角图形输出c语言,CDR将多边形/图形的角度变圆?CDR制作圆角图形的三种方法
在CorelDRAW中如何将多边形/图形的角度变圆.可能在以早的版本中,都没有直接实现圆角多边形的功能,直到后来较高版本中提及的圆角/扇形角/倒棱角功能的出现,才很好的解决了这个问题,其实方法也不止是 ...
- 纯CSS制作的图形效果
纯CSS制作的图形效果 很少会有人意识到,当浏览器绘制的border,会有一个角度的问题.我们就是得用这样的一个技巧来制作三角的效果.我们只需要保证一边的边框是有色,其他边框色为透明色,这样我们就很容 ...
- 如何用Photoshop制作渐变图形
如何用Photoshop制作渐变图形 (写作时间:4月7号 作者:李嘉城) 首先打开Photoshop,摁住Ctrl+N新建一张新画布,然后点击椭圆工具(椭圆工具快捷键:U),用椭圆工具摁住shift ...
- php怎样转花为ppt,玩转PPT之技巧47:用PPT制作花瓣图形
仔细观察就发现,其实这个背景还是比较好做的,花瓣做好,然后设置成半透明状,层叠在一起,还是要花点心思的.关键在于花瓣是怎么做出来的?因为直接插入PPT图形是没有的. 问题:如何用PPT制作花瓣图形? ...
- vspy如何在图形面板显示报文_触想激光切割解决方案中嵌入式工业触控显示器有何优势?...
方案背景 根据专家预测,国内的激光市场仍处于高速的增长阶段.目前国内的激光产业主要在深圳.武汉两地聚集,其中深圳是国内的重要销售市场,并且以多年的发展经验,领先了其他区域. 在激光市场快速增长的趋势下 ...
- vspy如何在图形面板显示报文_设备实时状态监控:如何进行工业生产设备数据采集?...
设备实时状态监控:如何进行工业生产设备数据采集?数据采集(DAQ),是指从传感器和其它待测设备等模拟和数字被测单元中自动采集非电量或者电量信号,送到上位机中进行分析,处理. 慧都设备数据采集系统解决方 ...
- vspy如何在图形面板显示报文_盘点市售三款USBC 86型面板插座,支持iPhone 12快充...
2020年USB-C充电器已全面普及,iPhone 12也支持USB PD快速充电,快充已无声无息地进入人们日常生活中.除USB-C充电器外,配备USB-C的插线板也开始陆续铺货,作为供电源头的家装墙 ...
- C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(四十四)制作主角属性面板及加点器
游戏中会使用大量的菜单面板,而这些面板往往都带有选项卡.如果用Silverlight工具中的TabControl,则需要通过复杂的xaml重写模板来实现自定义样式,这一点时常让开发者头疼,毕竟界面的东 ...
- c语言制作蒲公英图形,AI怎么制作蒲公英的种子? ai绘制蓬松白球的教程
AI怎么制作蒲公英的种子? ai绘制蓬松白球的教程AI怎么制作蒲公英的种子? ai绘制蓬松白球的教程 1.新建画布,画一个圆,大小6px*6px,去除描边,如图. 2.选中圆,选择效果-扭曲和变换-变 ...
- html制作主体部分,html – 使用CSS制作具有动态面板主体高度的面板填充父容器高度的其余部分...
我有一个具有页眉,正文和页脚的面板,即使面板主体中的内容溢出,该面板也需要填充屏幕(或其父容器).如果它确实溢出,那么身体将滚动.页眉和页脚高度是动态的,因为它们可能会随着不同的视图端口尺寸而变化,因 ...
最新文章
- 2017 Q3 ,互联网人的薪资发生了哪些变化?
- 微信小程序页面跳转后清除定时器
- codeforces 765 E Tree Folding
- the process cannot access the file because it is being used by another process
- Codeforces Round #364 (Div. 1) 700B(树)
- 查看IIS哪个应用程序池占用CPU过高
- CATIA二次开发VBA:(一)宏的录制、修改及回放
- mysql专业连接工具_mysql(MySQL客户端连接工具)
- 《信条》中国内地IMAX首周末票房表现强劲;洲际集团将在川滇环线新开四家酒店 | 美通企业日报...
- 139邮件服务器怎么设置,139手机邮箱的设置
- 关于android百度导航不能出声音的解决办法
- Python——动画精灵
- 阿里云宝塔apache启动失败解决办法
- php夜间时间模式,Typecho夜间模式设置
- 【NOIP2012提高组】开车旅行
- 【免费资源必备】LingoDeer,扫描全能王直装版等五款APP让你享受上千个免费资源
- 前端导出多页pdf 带目录 页眉 页脚及页码
- 如何更好的与ChatGPT人机对话进行辅助pyhton代码开发
- cglib中Enhancer介绍
- 服务器修改ip为什么需要重启,xp修改ip需要重启 - 卡饭网