VC++绘制图形的几种方法

第一种方法:使用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);
}



第二种方法:使用CDC *pDC 的菜单调用方式
⑴在MFC框架中的【FileView】面板中,双击【TestView.cpp】,在该文件最后添加成员函数DrawmyLine()的定义:

void CTestView::DrawmyLine( )
{
    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( );
}



本方法需要在头文件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);
}

本方法也需要在头文件TestView.h中声明成员函数DrawmyLine(),在源程序TestView.cpp中定义成员函数DrawmyLine()。不同点只是使用显示器客户区设备上下文类定义了客户区对象dc,并使用客户区的this指针对dc对象进行初始化,使dc对象指向显示器的客户区,这种方法不需要调用和释放设备上下文。

 

以上节选自《计算机图形学基础教程(Visual C++版)》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值