我正在尝试学习MFC doc-view应用程序。 我开始创建一个简单的图像查看器应用程序。 为此,我从CScrollView类派生了我的视图类并重写了draw()函数。

我想知道何时使用OnPaint()函数以及它与draw()函数的关系。

===============>>#1 票数:4 已采纳

您不应该在同一视图中同时使用OnPaintOnDraw函数。 根据微软的文档

当视图变为无效时,Windows会向其发送WM_PAINT消息。 视图的OnPaint处理函数通过创建类CPaintDC的设备上下文对象来响应消息,并调用视图的OnDraw成员函数。 您通常不必编写重写的OnPaint处理函数。

通过将绘图代码拆分为自己的函数,框架允许您重复使用它来绘制屏幕和打印。

  ask by Vivek Kumar translate from so

未解决问题?本站智能推荐:

1回复

如果我在OnPaint()函数中使用CClientDC会发生什么?

我是MFC和Windows编程的新手,这是我不了解的东西 我读过的所有地方都说不要在OnPaint中使用CClientDC,而只能使用CPaintDC 在我的代码中,我将矩形绘图函数附加到使用向导制作基于对话框的MFC应用程序时创建的默认OnPaint()处理程序。 在此代码中,
1回复

矩形未显示在OnPaint MFC上

我有一个用c ++和MFC编写的基于对话框的应用程序。 该对话框具有CStatic图片控件。 我在PictureCtrl的OnPaint()函数中绘制了一个BITMAP。 相关代码如下: 当应用程序运行时,矩形将显示在对话框的左上角,而不是图片控件。 其次,如果我最小化
1回复

如何在MFC应用程序中使用NetRemoteTOD函数

谁能举一个从互联网获取日期/时间的示例,到目前为止,我仅使用NetRemoteTOD函数找到了信息。 但是关键是我不知道如何使用它,服务器名称是什么。 我只是在函数中尝试了以下代码,但它给出了运行时错误。 感谢帮助
2回复

OnPaint()函数中的MemDC

我的OnPaint()函数调用其他几个绘图函数。 DrawCoordianteSystem的示例: 我现在想避免与CMemDC闪烁。 但是,我无法使其正常工作。 有人可以告诉我如何实施CMemDC吗? 谢谢
1回复

如何在MFC中使用WriteConsoleInput()?

我可以在控制台应用程序中使用WriteConsoleInput()。 但是当我尝试在MFC中使用writeConsoleInput()时,它不会在命令窗口中输入任何内容。 这是我的代码。 当我运行此代码时,它不会在命令窗口中输入任何内容。 如何在MFC中使用WriteConsole
2回复

在静态库中使用MFC

我已经使用选项“在静态库中使用MFC”创建了我的MFC应用程序。 我正在使用Installshield为我的应用程序创建安装。 我应该在installshield中添加哪些依赖项文件或“合并模块”? 是否有必要添加“Microsoft C ++运行时库”或“Microsoft Vi
3回复

在Windows服务中使用MFC?

我开始开发Windows服务。 我想使用我自己的一些类,它们对CString,CSocket,CArchive,CMemFile和CObject等一些MFC类几乎没有依赖性。 MSDN说你需要非常小心你在Windows服务中使用哪些MFC,但不要指定它,也不要描述可能出现的问题。 我的
2回复

在MFC 3.2中使用MFC .dll文件

我目前正计划使用Python访问基于MFC对话框的应用程序的.dll文件。 我是Python的新手,并且安装了Python的最新版本,即3.2。 我也安装了PythonWin,但不确定是否有用。 我了解在ctypes的帮助下使用python的基本知识。 在我的dll文件中,我有两个功能:
1回复

MFC 10 - 可以在CView中使用CFrameWnd吗?

我正在使用MFC(是的必须是MFC而不是我不能与.Net互动)来创建CFrameWnd。 我的目标是创建一个CFrameWnd,其中包含一个基于对话框模板的CFormView,类似于: 我有框架和视图显示,我有一个编辑控件。 现在我想要的是将CToolbar对齐到编辑文本控件的顶
2回复

在MFC中使用CRichEditCtrl进行文本选择

我有CRichEditCtrl对象是只读的(文本是读取,不允许修改)。 我想为使用CRichEditCtrl对象显示的文本提供带鼠标的文本选择功能。 以下代码正在努力捕获鼠标左键按钮的事件 - 向下和向上 现在寻找一些代码来写入大小写块,这将突出显示所选文本。 我想知道是否有任