如何在选定的区域画图

tipbridge 2003-10-17 02:18:29
我想在客户区的一个椭圆内画图(如直线,图片),椭圆外部将不显示,只显示椭圆内部的图,象photoshop在选区中画图那样,如何实现?
...全文
108 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tipbridge 2003-10-29
  • 打赏
  • 举报
回复
good boy milson(ifaq)
milson 2003-10-28
  • 打赏
  • 举报
回复
use SelectClipRgn too.

CClientDC dc(this);
CRect rcClient;
CRgn rgn;
GetClientRect(rcClient);
rgn.CreateEllipticRgn(10,10,40,40);
::SelectClipRgn(dc.GetSafeHdc(), (HRGN)rgn.GetSafeHandle());
dc.FillSolidRect(&rcClient, RGB(255,0,0));
ljzcom 2003-10-28
  • 打赏
  • 举报
回复
路过
milson 2003-10-28
  • 打赏
  • 举报
回复
我想可以用ExtSelectClipRgn()来设定画图区域。
tipbridge 2003-10-28
  • 打赏
  • 举报
回复
比如,我要在一个矩形上画线,lineto可能画到矩形外面去,但只显示矩形内部的线
flinming 2003-10-27
  • 打赏
  • 举报
回复
这个就要计算你得区域了。。。。。。。。
cnwww 2003-10-27
  • 打赏
  • 举报
回复
怎么这么长时间没回复,你可以自己将贴子提前的。

我的代码如下:
//CRgnShowView是CView的派生类。
BOOL CRgnShowView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
CBitmap bmp;

bmp.LoadBitmap(IDB_BMP_LL);
m_aBrush.CreatePatternBrush(&bmp); // CBrush m_aBrush;为类成员
bmp.DeleteObject();

return CView::PreCreateWindow(cs);
}

void CRgnShowView::OnDraw(CDC* pDC)
{
CRgnShowDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CRect aRect;

GetClientRect(aRect);
CRgn aRgn;
aRgn.CreateEllipticRgnIndirect(aRect);
pDC->FillRgn(&aRgn,&m_aBrush);
}

tipbridge 2003-10-20
  • 打赏
  • 举报
回复
up一下
cnwww 2003-10-17
  • 打赏
  • 举报
回复
使用CRgn看看。

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧