visual-c++ - 我在我的对话框类中添加了一个 OnPaint() 函数,但它在 dlg.DoModal() 之后没有被调用

标签 visual-c++ visual-studio-2008 mfc modal-dialog onpaint

谁能帮我理解如何为从 CDialog 派生的对话框类覆盖 OnPaint()

代码如下:

ColorImageDlg *pDlg = NULL;
pDlg = new ColorImageDlg;
pDlg->DoModal();
delete pDlg;

我正在覆盖 OnInitDialog() 并且它被调用了。 但是在重写 OnPaint() 时它没有被调用。

谁能帮我解决这个问题?

最佳答案

首先,在堆上创建对话框的实例有什么意义?你可以简单地做:

ColorImageDlg dlg;
dlg.DoModal(); 

您需要像这样修改您的消息映射:

BEGIN_MESSAGE_MAP(ColorImageDlg, CDialog)
    ON_WM_PAINT()
END_MESSAGE_MAP()

使用 VS 类向导 来避免此类问题。

关于visual-c++ - 我在我的对话框类中添加了一个 OnPaint() 函数,但它在 dlg.DoModal() 之后没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37722069/

相关文章:

c++ - gcc 错误消息库

c++ - 如何将文件传递给函数?

c++ - 无法从 NULL 资源创建 RenderTargetView

c# - 如何使用控制面板程序功能中显示的复选框

visual-studio - Visual Studio 2008 ASMX文件

c++ - 你必须在mfc中杀死定时器吗?

c++ - CDC::DrawText 不起作用?

windows - 如何在 VS2005 监 Windows 口中显示变量的完整字符串值?

vb.net - 如何卸载 VB.NET 中所有打开的表单?

c++ - windows下使用start启动应用程序