一、实现的功能
1、程序可以画点、直线、矩形、椭圆
2、可以设置线宽、颜色、字体,可以看到线型示例
3、可以显示鼠标点的坐标,可以显示系统时间
4、在IDR_MAINFRAME字符串里面直接更改程序标题
5、画图文件的重绘。
6、程序用VS2008编写,个人觉得,VC6.0就像windowsXP
VS2008就像Win10,习惯了就好
二、实现的功能图片
三、实现的过程与代码
3.1、添加的菜单项
1、IDM_DOT 点 IDM_LINE 线 IDM_RECTANGLE 矩形 IDM_ELLIPSE 椭圆
IDM_COLOR颜色 IDM_FONT 字体 IDM_SETTING
3.2、添加的对话框资源
1、IDD_DLG_SETTING 设置 IDC_LINE_WIDTH 线宽(线型默认设置)IDC_SAMPLE 示例
3.3、添加的成员变量
1、CGraphicview
UNITm_nDrawType;//保存绘图选择,分别为1、2、3、4、初始化为0
CPointm_ptOrigin;//保存鼠标当前按下的点,初始化为0
COLORREFm_clr;//将当前所绘画的颜色保存下来,初始化为RGB(255,0,0)
UNITm_nLineWidth;//保存线宽值,然后在画图程序中使用,初始化为0
intm_nLineStyle;//保存线型,画图时使用,初始化为0
CFontm_font;//选择一种字体
CString m_strFontName;//保存所选字体的名称
CPtrArray m_ptrArray;//集合类的变量保存对象值
2、设置对话框增加了一个新类CSettingDlg
UNITm_nLineWidth;//保存对话框选择的线宽
int m_nLineStyle;//保存对话框选择的线型
3、图形保存与重绘
UINT m_nDrawType;//保存绘图选择
CPoint m_ptOrigin;//保存起点
CPoint m_ptEnd;//保存终点
COLORREFm_clr;//保存颜色
3.3代码的实现过程
1、所有变量在构造函数中初始化
CGraphicView::CGraphicView()
{
m_nDrawType=0;
m_ptOrigin=0;
m_nLineWidth=0;
m_nLineStyle=0;
m_clr=RGB(255,0,0);
m_strFontName="";
}
2、在CGraphicView类添加命令响应(添加事件处理程序)
同时设置变量UNIT m_nDrawType;//保存绘图选择,分别为1、2、3、4、表示
点、直线、矩形、椭圆
程序实现代码:
void CGraphicView::OnDot()
{
m_nDrawType=1;
}
void CGraphicView::OnLine()
{
m_nDrawType=2;
}
void CGraphicView::OnRectangle()
{
m_nDrawType=3;
}
void CGraphicView::OnEllipse()
{
m_nDrawType=4;
}
3、在CGraphicView类增加鼠标左键按下和鼠标左键松开两个消息响应函数
在左键按下的时候保存起点
在左键松开的时候,实现画图功能
程序代码实现如下:
void CGraphicView::OnLButtonDown(UINTnFlags, CPoint point)
{
m_ptOrigin=point;
CView::OnLButtonDown(nFlags, point);