winForm圆角矩形及C++builderForm圆角设计
来源:互联网 发布:云南大学 知乎 编辑:程序博客网 时间:2024/05/21 15:42
就现在来说,使用C++builder开发windows编程的人数逐渐变少,由于公司坚持使用这个IDE工具,我也只好使用他。最近看见公司客户端登录界面感觉十分不爽,准备重做,决定参考qq界面,做出圆角矩形的,于是乎就在论坛里面找啊找,功夫不负有心人,我终于总结出一套在C++builder这个IDE平台上运行的代码。 废话不说,先看效果。![这里写图片描述](http://img.blog.csdn.net/20170807155038987?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvam9obmxhb3hpbmc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast) 如果此图是大家想要的效果,那么往下看。本篇文章我们会实现Form和Panel的圆角设计。 第一步:设置Form属性BordStyle为None; 第二步:在FormCreate的事件中放入如下代码; void __fastcall TForm1::FormCreat(TObject*Sender) { HRGN hr; hr = CreateRoundRectRgn(0,0,Width, Height ,20,20); SetWindowRgn(this->Handle,hr,true); } 上面的代码并不能保证圆角矩形部分有边框,如果需要边框,还需要在FormPaint中加入如下代码: void __fastcall TForm1::FormPaint(TObject *Sender) { HDC DC; HPEN Pen,OldPen; HBRUSH OldBrush; DC = GetWindowDC(this->Handle); Pen = CreatePen(PS_SOLID, 1, clGray); OldPen = (HPEN)SelectObject(DC, Pen); //载入自定义的画笔,保存原画笔 OldBrush =(HBRUSH)SelectObject(DC, GetStockObject(NULL_BRUSH));//载入空画刷,保存原画刷 RoundRect(DC, 0, 0, Width -2, Height -2,21,21); //画边框 SelectObject(DC,OldBrush);//载入原画刷 SelectObject(DC,OldPen); // 载入原画笔 DeleteObject(Pen); ReleaseDC(Handle, DC); } 至此,form部分设置圆角矩形已经完成,接下来是Panel部分。 void __fastcall TForm1::Button1Click(TObject *Sender) { HRGN hr; hr = CreateRoundRectRgn(0,0, Panel1->Width, Panel1->Height ,4,4); SetWindowRgn(Panel1->Handle,hr,true); //Panel1->Color = clRed; } 好了,小弟需要分享的思路到此已经完成。
阅读全文
0 0
- winForm圆角矩形及C++builderForm圆角设计
- WinForm中窗体重画成圆角矩形
- div无图片圆角矩形设计
- AWT构造矩形,圆角矩形,3D矩形
- <<数学>>圆角矩形,矩形重叠(一)
- 把一个矩形变成圆角矩形
- C#winform实现窗体圆角
- 圆角矩形delphi
- 圆角矩形
- 圆角矩形
- CSS 圆角矩形
- CSS圆角矩形
- 圆角矩形
- html圆角矩形
- CSS圆角矩形
- Android 圆角矩形
- 圆角矩形
- IOS-圆角矩形
- ambari-自动构建 stack继承说明
- 解剖getchar
- 试密码(20)
- Linux实现的IEEE 802.1Q及VLAN/Trunk以及三层交换
- iOS开发 UIReferenceLibraryViewController(词典)的使用
- winForm圆角矩形及C++builderForm圆角设计
- java 集合类深入理解
- 2017多校四 1007题 hdu 6073 Matching In Multiplication 拓扑排序 + 找环
- 循环队列
- Java8 默认方法 default method
- 残缺的棋盘(dijkstra算法)
- 理解面向对象
- 多目标及多分类区别及交叉熵问题
- 文章标题