MFC 画一个圆角的 矩形 我要的不是按钮注意 只是画图!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC 画一个圆角的 矩形 我要的不是按钮注意 只是画图!相关的知识,希望对你有一定的参考价值。

参考技术A CRect rect = lpDrawItemStruct->rcItem;
CDC *pDC=CDC::FromHandle(lpDrawItemStruct->hDC);

POINT pt ;

//画按钮的外边框,它是一个半径为5的圆角矩形
pt.x =5;
pt.y =5;
CPen* hOldPen = pDC->SelectObject(&m_BoundryPen);
pDC->RoundRect(&rect, pt);
pDC->SelectObject(hOldPen);
rect.DeflateRect(CSize(GetSystemMetrics(SM_CXEDGE), GetSystemMetrics(SM_CYEDGE)));
CBrush brush(m_color);
pDC->FillRect(rect,&brush );
brush.DeleteObject();
本回答被提问者采纳
参考技术B RoundRect 你要的不是这个效果,那是什么效果,按你说的就是RoundRect 啊追问

就是一个角是圆角的 别的都正常 只是一个角是圆角的矩形!

追答

没有这个函数,只能自己实现了
用区域来实现了。
CombinRgn函数,对矩形和圆进行AND操作

iRgnType = CombineRgn (hDestRgn, hSrcRgn1, hSrcRgn2, iCombine) ;
这一函数将两个区域(hSrcRgn1和hSrcRgn2)组合起来并用句柄hDestRgn指向组合成的区域。这三个区域句柄都必须是有效的,但是hDestRgn原来所指向的区域被破坏掉了(使用这个函数时,要让hDestRgn初始化,指向任意一个区域,即使是hSrcRgn1也行)。
iCombine参数说明hSrcRgn1和hSrcRgn2如何组合,见表。

iCombine值 新区域
RGN_AND 两个区域的公共部分
RGN_OR 两个区域的全部
RGN_XOR 两个区域的全部除去公共部分
RGN_DIFF hSrcRgn1不在hSrcRgn2中的部分
RGN_COPY hSrcRgn1的全部(忽略hSrcRgn2)

或者简单点,画4条直线+1条弦
Pie函数

参考技术C 好像有专门的函数的 你仔细赵州 rectangle追问

函数我都看过了RoundRect 是画圆角矩形的 也就是 四个角都是圆形的!我想要的 不是这个效果!

参考技术D a

23.矩形交互样式与单选按钮设置(没太掌握好)

技术分享图片文本框的线用在图片上加矩形来实现 然后在矩形里加上文本框

技术分享图片右侧的样式可以调圆角半径 而不是去拉小三角 因为很难拉精准

技术分享图片下面部分有各种对齐方式 比如上图中矩形要跟文本框对齐就可以同时选中然后选择居中对齐

复制之后注意相关细节的更改 比如名字等

技术分享图片默认是两个都可以选中 如果我们只需要选择一个 可以把这两个按钮组成一个按钮组 类似于项目组 属性里有或者右键单击

技术分享图片自带的按钮不好看 要做例子中的按钮可以用两个圆形自己做 然后同时选中居中对齐 然后让第一个直接被选中达到默认选择第一个的效果 注意:这个按钮由两个圆形组成 选择大圆的时候同时也要选中小圆 选中小圆的时候同时要选中大圆 因此这些圆形也要取名字给动作

 

以上是关于MFC 画一个圆角的 矩形 我要的不是按钮注意 只是画图!的主要内容,如果未能解决你的问题,请参考以下文章

如何将已经设置好的VC MFC 矩形按钮改成圆形 工程的基类是CView

如何在 MFC 中创建圆角矩形按钮

MFC如何画矩形

MFC绘制矩形

c# winform中怎么画出圆角矩形或者就有这样的控件,求指点

猎豹MFC--对话框 复选框 单选按钮