基于单文档的对话框画图

caolining 2009-03-11 01:54:03
如题:如何在基于单文档的对话框上画图呢?能不能指点一下。最好给个例子。呵呵
...全文
122 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
littlefangMFC 2009-03-12
  • 打赏
  • 举报
回复
可以在DIALOG中嵌入一个VIEW,这样画起来就方便多了。。。
caolining 2009-03-11
  • 打赏
  • 举报
回复
怪我,我的意思是在MENU栏里打开一个对话框,而不是拆分单文档。呵呵。基类CDIALOG就可以了,用ONPAINT,就可以画了。现在就是不知道坐标顶点如何定了。
  • 打赏
  • 举报
回复
OnPaint OnDraw画都可以
千万不算多 2009-03-11
  • 打赏
  • 举报
回复
忘了说明,这个程序的目的就是每隔一段时间在区域里不停的重绘三幅图,矩,圆,和三角型
千万不算多 2009-03-11
  • 打赏
  • 举报
回复
我也是在一本书上看到的,希望对你有帮助,首先建立一个单文档mfc(.exe)
在cview中添加一个变量int i;
在构造函数中将i值初始化为1;
添加消息相应函数oncreate()和ontimer()//隔一段时间产生一定的变化
在ondraw(CDC *pDC)中添加如下代码
CBrush brush;//创建画刷
brush.CreateSolidBrush(RGB(255,255,255));//设置画刷的颜色为白色
CRect rect(0,0,1024,768);//对与区域进行设置
pDC->FillRect(rect,&brush);
//以上完成的是将单文档的内部重绘为白色
if(i==1)
{
pDC->Rectangle(20,20,89,89);
}
else if(i==2)
{
pDC->Ellipse(20,20,89,89);
}
else
{
pDC->MoveTo(20,20);
pDC->LineTO(89,89);
pDC->LineTo(10,89);
pDC->LineTo(20,20);
}
接下来就应该想想如何对i的值进行控制
在ontime()函数添加如下代码
{
CDC *pDC;
pDC=GetDc();
i=(i+1)%3;
ondraw(pDC);

}
然后如何在多长时间改变一下i的值
这就通过create函数实现
添加代码
Set Timer(1,750,NULL);
这是我以前看到的一个程序,都是手写的,有的地方没有区分大小写,我的资源里有一本vc++ 6.0游戏编程,你看看应该能学到东西
weidong0210 2009-03-11
  • 打赏
  • 举报
回复
up
eagerle01 2009-03-11
  • 打赏
  • 举报
回复
建议看下孙鑫的《VC++深入详解教学视频》,O(∩_∩)O哈哈~
wa6190064 2009-03-11
  • 打赏
  • 举报
回复
帮顶,我也画不出来
Tinary3v0 2009-03-11
  • 打赏
  • 举报
回复
你说的是FormView上吧 直接在Ondraw里面画就行了:

void CFormSDIView::OnDraw(CDC* pDC)
{
CFormSDIDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);

pDC->Rectangle( 0, 0, 100, 100 );
pDC->TextOut( 105,105, "这是一个测试!");
}

19,464

社区成员

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

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