第一范文网 - 专业文章范例文档资料分享平台

MFC中的GDI绘图(4)

来源:用户分享 时间:2021-06-02 本文由青衫忆笙 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

函数原型为:WINUSERAPI HDC WINAPI BeginPaint( HWND hWnd,LPPAINTSTRUCT lpPaint);

//以下为Win API示例::BeginPaint(HWND hWnd, LPPAINTSTRUCT lpPaint);

case WM_PAINT://窗口客户区需要重绘

{ char szText[]="Hello World"; PAINTSTRUCT ps; HDC hdc=::BeginPaint(hWnd,&ps); ::TextOut(hdc,10,10,szText,strlen(szText)); ::EndPaint(hWnd,&ps); return 0;

}

MFC对BeginPaint进行了封装:

CWnd::BeginPaint,CDC* BeginPaint( LPPAINTSTRUCT lpPaint ); 等价于

::BeginPaint(CWnd::m_hWnd, LPPAINTSTRUCT lpPaint);

<2>通过API函数GetDC。在非WM_PAINT消息处理函数中,需要调用GetDC来获取设备环境,调用API函数ReleaseDC来释放设备环境。

函数原型为:WINUSERAPI HDC WINAPI GetDC( HWND hWnd);

(2)在MFC中,MFC提供了不同类型的DC类,每一个类都封装了DC句柄,并且它们的构造函数自动调用获取DC的API函数,析构函数自动调用释放DC的API函数。因此,在程序中通过声明一个MFC设备环境类的对象就自动获取了一个DC,而当该对象被销毁时就自动释放了获取的DC。MFC AppWizard应用程序向导创建的OnDraw()函数自动支持所获取的DC。

<1> CPaintDC构造函数:CPaintDC(CWnd* pWnd); 构造一个CPaintDC对象(pWnd指向一个CPaintDC对象所属的CWnd对象),准备用于绘画的应用程序窗口。

// BeginPaint

void CView::OnPaint()

{

CPaintDC dc(this); // device context for painting // TODO: Add your message handler code here OnPrepareDC(&dc); OnDraw(&dc)

}

当我们改变了窗口尺寸、移动窗口或恢复了先前被覆盖的部分,应用程序窗口就会收到一个Windows系统发送来的WM_PAINT消息,然后调用基类Cview的OnPaint函数或我们自己添加的消息处理函数OnPaint。我们可以在OnPaint函数中重绘窗口中重新可见的部分(),但简单的处理办法是

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新外语学习MFC中的GDI绘图(4)全文阅读和word下载服务。

MFC中的GDI绘图(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1206007.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top