使用MFC编制基于对话框的Windows应用程序,实现画图功能

(1)画直线:通过CDC:LineTo()函数实现。
(2)画曲线:通过CDC:LineTo()函数实现。
(3)画矩形:通过Rectangle()函数实现。
(4)利用位图资源填充矩形:通过CBrush类构造函数CBrush(Bitmap*)实现。
(5)画扇形:通过CDC:LineTo()函数实现
(6)设置透明的刷子(将矩形填充色为透明)。
(7)窗口在重绘时不擦出原来的内容:在窗口发生变化时,窗口的内容不消失,程序在窗口尺寸发生变化时,将会发送WM_PAINT消息,这时首先会擦出窗口背景,然后进行重绘操作,这样就把窗口中先前绘制的内容擦除掉了。

第1个回答  2012-05-16
获取对话框的窗口句柄 创建你的绘制图层并将句柄绑定在图层上
画几何图形操作都基于图层来画
最后将画好的图层贴在DLG上就行了
第2个回答  2012-06-01
见邮箱本回答被提问者采纳
第3个回答  2012-05-07
士大夫

如何用 VC(MFC)实现基于对话框的位图读取显示
1、将图像文件以资源形式加入工程中,IDB_BITMAP1 2、用一个PICTURE控件,在其属性中,将其Type设置为Bitmap 3、将Piture控件的属性中的Image设置为IDB_BITMAP1 运行

我想在基于对话框的MFC程序中画图,画图程序可以不写在OnPaint函数中吗...
1.可以不在OnPaint中 2.其机制是:a.windows是多窗口的,你的程序不应该把图画到其它地方去,所以你要取得窗口的专门管绘图的一个句柄,叫做 HDC b.你用MFC,要取它的话用这句: CDC* pDC=this->GetDC(); (某窗口的DC,例如本窗口就是this)c.然后就可以向DC中画了,例如:pDC->LineTo(100,100...

C++ MFC如何在对话框上画动态图 画图
void CMFCApplication2Dlg::OnPaint(){if (IsIconic()){\/\/...else{CPaintDC dc(this); \/\/ device context for paintingCPoint Pt[7];Pt[0] = CPoint(20+m_incr, 50);Pt[1] = CPoint(180+m_incr, 50);Pt[2] = CPoint(180+m_incr, 20);Pt[3] = CPoint(230+m_incr, 70)...

VC++ MFC在对话框上画图问题
1、如何在新建的一个dialog中添加onpaint()函数?例如你新建了一个dialog,类名为test22(添加类是双击新建那个窗口),接着找到这个类的头文件test22.h,在其中的protected中添加一行afx_msg void OnPaint();这样就可以在test22.cpp中用onpaint()函数了,添加void test22::OnPaint(){}就可以了:...

一个关于关于MFC的问题:如何在对话框上画图
在对话框中响应CDialog::OnLButtonDown(nFlags, point);与CDialog::OnLButtonUp(nFlags, point);CDialog::OnMouseMove(nFlags, point);这三个事件,给个例子,比着这个改一下。先定义BOOL m_bMove=false;void CDrawView::OnLButtonDown(UINT nFlags, CPoint point){ \/\/ TODO: Add your message ...

求助:使用 MFC 开发图形界面程序
一、创建基于对话框的MFC程序 先打开Visual Studio 2013开发环境,如图1所示。依次点击【文件】> 【新建】> 【项目】创建一个新的项目。接下来进入创建项目界面如图2所示。依次选择【已安装】 > 【模版】 > 【Visual C++】 > 【MFC】来到MFC程序类型选择界面,选择【MFC应用程序】这一列。在创建项目...

MFC 对话框的矩形区域内画图
对话框默认就是不能缩放的 一个DC都是和一个CWnd相对应的,所以说想获得对话框上面某一个矩形区域的DC不好办。你可以这样,假设你知道那个矩形区域的左上角坐标是x,y,宽度是Width,高度是Height :CDC* pDC=GetDC();CDC mdc;mdc.CreateCompatibleDC(pDC);\/\/创建内存DC;CBitmap bmp;bmp.Create...

基于对话框的MFC应用程序怎么建立?
1. 使用应用程序向导产生一个空的“Win32 Application”Project;2. 添加头文件“StdAfx.h”,内容是 #include <afxwin.h> 3. 添加源文件“StdAfx.cpp”,内容是 #include "StdAfx.h"4. 执行Build,会看到LinkError,打开Project|Setting,在General里,选择“Use MFC in Shared DLL”,再次执行...

...使用MFC编制基于对话框的Windows应用程序,设计一个购置车辆保险费用...
3.全车盗抢险保费=车辆实际价值×费率 4.新增加设备损失险保费=本险种保险金额×费率 5.玻璃单独破碎险保费=新车购置价×费率 6.自燃损失险保费=本险种保险金额×费率 7.车上责任险保费=本险种赔偿限额×费率 8.车载货物掉落责任险保费=本险种赔偿限额×费率 9.不计免赔特约险保费=(车辆损失险保险...

MFC基于对话框 高手进
对话框默认用的两个按钮的ID分别是IDOK和IDCANCEL,这两个都是在winuser.h 中预定义的系统标准控件ID。对于标准ID,你不重载时MFC会自动调用父类的相应处理函数。比如IDOK映射到CDialog::OnOK()函数,IDCANCEL映射到CDialog::OnCancel()。当我们在对话框编辑器中加入一个按钮时,IDE环境自动干了两件...

相似回答