VC++绘制图形的几种方法
来源:互联网 发布:速卖通可以淘宝代销吗 编辑:程序博客网 时间:2024/04/29 18:59
第一种方法:使用OnDraw成员函数
void CTestView::OnDraw(CDC* pDC)
{
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
pDC->MoveTo(20,30);
pDC->LineTo(200,300);
}
{
CTestDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
pDC->MoveTo(20,30);
pDC->LineTo(200,300);
}
第二种方法:使用CDC *pDC的菜单调用方式
⑴在MFC框架中的【FileView】面板中,双击【TestView.cpp】,在该文件最后添加成员函数DrawmyLine()的定义:
void CTestView::DrawmyLine( )
{
CDC *pDC=GetDC();
pDC->MoveTo(20,30);
pDC->LineTo(200,300);
ReleaseDC(pDC);
}
{
CDC *pDC=GetDC();
pDC->MoveTo(20,30);
pDC->LineTo(200,300);
ReleaseDC(pDC);
}
⑵在【FileView】面板中,双击【TestView.h】,在该文件中的“public:”下面加入成员函数声明:void DrawmyLine();
⑶在菜单中添加菜单函数OnMENU DrawmyLine( )调用DrawmyLine()成员函数。
void CTestView::OnMENU DrawmyLine( )
{
// TODO: Add your command handler code here
DrawmyLine( );
}
{
// TODO: Add your command handler code here
DrawmyLine( );
}
本方法需要在头文件TestView.h中声明成员函数DrawmyLine(),在源程序TestView.cpp中定义成员函数DrawmyLine()。在DrawmyLine()函数中使用了CDC类指针对象,需要调用和释放设备上下文。
第三种方法:使用CClientDC dc(this)的菜单调用方式
成员函数DrawmyLine()的声明和菜单的调用同第二种方法的⑵和⑶,在TestView.cpp文件中修改DrawmyLine()成员函数的定义:
void CTestView:: DrawmyLine( )
{
CClientDC dc(this);
dc.MoveTo(20,30);
dc.LineTo(200,300);
}
{
CClientDC dc(this);
dc.MoveTo(20,30);
dc.LineTo(200,300);
}
本方法也需要在头文件TestView.h中声明成员函数DrawmyLine(),在源程序TestView.cpp中定义成员函数DrawmyLine()。不同点只是使用显示器客户区设备上下文类定义了客户区对象dc,并使用客户区的this指针对dc对象进行初始化,使dc对象指向显示器的客户区,这种方法不需要调用和释放设备上下文。
以上节选自《计算机图形学基础教程(Visual C++版)》
- VC++绘制图形的几种方法
- VC# TMSChart图形绘制
- C#绘制的几种方法
- 几种绘制半透明多边形/绘制半透明矩形的方法
- 几种绘制半透明多边形/绘制半透明矩形的方法
- AWT----绘制各种图形的方法r
- OpenGL绘制基本图形单元的方法
- Cocos2d-lua绘制图形的方法
- UIBezierPath绘制图形的常用方法详解
- iOS绘制图形的基本方法
- VC获得MAC的几种方法
- VC++ 创建字体的几种方法
- 删除文件夹的几种方法(VC)
- VC获取cookies的几种方法
- VC调用javascript的几种方法
- VC调用javascript的几种方法
- JAVA绘制图形方法
- 孙鑫vc++ 第十课 笔记 图形的绘制
- hp刀片安装经历
- VB Property 中 Set与Let赋值
- INNO SETUP 配置
- [转]User Exit for Release Procedure (PR)
- Linux 开机Logo制作
- VC++绘制图形的几种方法
- 字符集之间转换(UTF-8,UNICODE,Gb2312)
- 使用servlet过滤器和监听器
- 不要测试人员的5个(错误的)理由
- STM32下DS18B20的驱动
- .net中前台javascript与后台c#相互调用
- 坐标系
- 几道笔试题的解法(八)
- ACboy needs your help again! hdu1702