MFC框架应用程序被覆盖或摇动时不重绘

时间:2018-07-02 22:44:09

标签: mfc

我正在创建一个基于MFC框架的应用程序,用于仪器监视/绘图/交互,在主框架中托管了几个子窗口。这些子窗口都是由主框​​架使用以下命令创建的:

MakeCommandsWindow("Child Window",   
             WS_VISIBLE | WS_CHILD ,
            CommandsRect, this, NULL);

这叫建设者:

BOOL Commands::MakeCommandsWindow(LPCSTR WindowTitle, DWORD dwStyle,
                  RECT& rect, CWnd* pParent, UINT nID){
CString CommandsWindowClass = AfxRegisterWndClass(
             CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW ,
             AfxGetApp()->LoadStandardCursor(IDC_ARROW));
CWnd::Create(CommandsWindowClass, WindowTitle, dwStyle,
             rect, pParent, nID);

该应用程序运行良好,除了处理重绘事件外。当应用程序被另一个窗口覆盖并被发现时,它不会正确重绘。此外,它不会最大化或正确调整大小。我的理解是MFC在这些事件期间会自动发送重绘消息,而我不必拦截这些消息。到目前为止,我已经在模态对话框关闭后实现了一些手动redraw()指令,以处理其中的一些问题,但是我不知道什么是处理此更深层问题的正确方法,或者我的应用程序的哪个方面不正确。 谢谢您的任何建议。

编辑:提到的Redraw():     关闭对话框(包含中心窗口)后,我告诉中心窗口重新粉刷:     PlotSettings Dlg;     Dlg.DoModal();     MonitorWindow-> RedrawWindow();

0 个答案:

没有答案