b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

[windows画图工具下载]windows绘图板设计c++(4)

电脑杂谈  发布时间:2016-12-18 10:00:48  来源:网络整理

2.2 设置对话框

为程序添加一个设置对话框,允许用户指定画笔的类型、线宽,并让随后的绘图操作就使用用户指定的新设置值来进行绘制。

表2-1

6

设置线型、线宽对话框的代码如下:

void CWdrawView::OnSetting()

{

//TODO: 在此添加命令处理程序代码 CSettingDlg dlg; dlg.m_nLineWidth=m_nLineWidth;

dlg.m_nLineStyle=m_nLineStyle;

if(IDOK==dlg.DoModal()) { m_nLineWidth=dlg.m_nLineWidth;

m_nLineStyle=dlg.m_nLineStyle;

} }

2.3 颜色

颜色对话框看起来比较复杂。实际上,MFC为我们提供了一个类:CColorDialog,可以很方便的创建这样的一个颜色对话框。

void CWdrawView::OnColor()

{

// TODO: 在此添加命令处理程序代码

CColorDialog dlg;

dlg.m_cc.Flags |=CC_RGBINIT | CC_FULLOPEN;

dlg.m_cc.rgbResult=m_clr;

} if(IDOK==dlg.DoModal()) { } m_clr=dlg.m_cc.rgbResult;

2.4 添加文字

void CTView::OnDraw(CDC* pDC)

{

7

CTDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);pDC->TextOutW(30,30,_T("windows绘图板设计!"));if (!pDoc)return;}

2.5 打开与保存

void CWdrawView::OnFileOpen() {

}

void CWdrawView::OnFileSave() {

// TODO: 在此添加命令处理程序代码HMETAFILE hmetaFile;

}

8 // TODO: 在此添加命令处理程序代码 HMETAFILE hmetaFile; hmetaFile=GetMetaFile("meta.wmf"); m_dcMetaFile.PlayMetaFile(hmetaFile); DeleteMetaFile(hmetaFile); Invalidate(); hmetaFile=m_dcMetaFile.Close(); CopyMetaFile(hmetaFile,"meta.wmf"); m_dcMetaFile.Create(); DeleteMetaFile(hmetaFile);

第三章 调试及结果分析

3.1 运行结果

根据前面步骤,将程序代码一一添加进去,点击运行,得到如下结果:

图3.1为添加文字代码运行结果;图3.2为添加所有绘图程序代码后的运行结果。

3.1

图3.2

9

3.2 结果分析

本次课程设计,出现的问题比较多,添加完后运行报错较多,经过仔细排查,逐一解决了问题,得到了所要的结果,所以要非常的细心,不要添错代码,尽量少出错。一开始我并没有添加刷新函数Invalidate(),这就使程序运行之后,无论鼠标左键按下时如何移动无法绘图,这是因为当一个窗口内键入内容其实就是将窗口刷新了,相当于更新了窗口,故必须有刷新函数,这和生活中的白纸写字不一样。

当添加Invalidate()后,把Invalidate()放在OnMouseMove()里,但是这样只能在窗口内画一个图形,即每画完一个图形就刷新一次。之后通过与同学讨论,并查找资料将Invalidate()改为了Invalidate(0),这时是可绘制多个图形,但鼠标每移动一个位置都进行一次刷新,绘图结束后,绘图过程中的所有痕迹都在,产生了很多拖动的影子。,经过几次试验,将Invalidate(0) 放在了OnLButtonUp()中,那么每次重绘,上次的图形会作为背景被保留下来,而不会被刷新掉。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-23014-4.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...