winForm圆角矩形及C++builderForm圆角设计

   就现在来说,使用C++builder开发windows编程的人数逐渐变少,由于公司坚持使用这个IDE工具,我也只好使用他。最近看见公司客户端登录界面感觉十分不爽,准备重做,决定参考qq界面,做出圆角矩形的,于是乎就在论坛里面找啊找,功夫不负有心人,我终于总结出一套在C++builder这个IDE平台上运行的代码。
   废话不说,先看效果。![这里写图片描述](https://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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现一个美观的自定义圆角按钮,可以使用WinForm中的绘图功能来实现。首先,你可以使用Graphics类的DrawRoundRect方法来绘制一个带有圆角矩形框。可以参考下面的代码示例: private void Draw(Rectangle rectangle, Graphics g, int _radius, bool cusp, Color begin_color, Color end_color) { // 在这里实现绘制圆角矩形的逻辑 // 需要传入矩形的坐标、Graphics对象、圆角半径、是否显示尖角等参数 // 可以使用GDI+的绘图功能来绘制圆角矩形 // 可以设置背景渐变色等美化效果 // 具体的实现可以根据你的需求进行调整 } 然后,你可以在按钮的Paint事件中调用这个方法来绘制按钮的外观。例如,在按钮的Paint事件中添加以下代码: private void button1_Paint(object sender, PaintEventArgs e) { Button button = (Button)sender; Rectangle rectangle = new Rectangle(0, 0, button.Width, button.Height); Graphics g = e.Graphics; int radius = 10; // 设置圆角半径 bool cusp = false; // 是否显示尖角,根据需求设置 Color begin_color = Color.White; // 背景渐变色的起始颜色 Color end_color = Color.Gray; // 背景渐变色的结束颜色 Draw(rectangle, g, radius, cusp, begin_color, end_color); } 这样,按钮就会根据你在Draw方法中设置的参数来绘制一个具有圆角和美化效果的按钮了。你可以根据实际需求调整代码中的细节。同时,你可以通过在Paint事件中添加其他绘图逻辑来实现更多的效果展示。 如果你想了解更多关于绘制圆角按钮的实现细节,你可以参考提供的链接,其中提供了一个下载链接,里面包含了实现圆角按钮的完整代码示例。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值