
MFC 画一个圆角的 矩形 我要的不是按钮注意 只是画图!
4个回答
展开全部
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();
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();
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好像有专门的函数的 你仔细赵州 rectangle
追问
函数我都看过了RoundRect 是画圆角矩形的 也就是 四个角都是圆形的!我想要的 不是这个效果!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-01-08
展开全部
a
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询