这是使用 MDI 体系结构的大型 MFC 应用程序的一部分。它是使用 Microsoft Visual Studio 2019 编写的。
我想创建一个窗口来显示文本文件的前几行,以便用户可以做出解析它的决定。新窗口不适合整个文档/视图架构,因此我将桌面窗口设为其父窗口。窗口创建成功,成功地位于屏幕的左上角并显示文本文件的前几行。但是,当我将它拖到新位置时,它的轮廓不会在拖动过程中绘制,尽管它最终会在预期的位置,因此用户没有视觉反馈。
这是创建窗口的代码:
CWnd *parent = GetDesktopWindow();
int w = GetSystemMetrics(SM_CXFULLSCREEN) / 3;
int h = GetSystemMetrics(SM_CYFULLSCREEN) / 4;
CString title;
title.Format("Previewing first %d lines of file", m_nPreviewLines);
// fpw is of locally defined type CFilePreviewWnd, which is derived directly from CWnd.
fpw->Create(
AfxRegisterWndClass(CS_NOCLOSE, 0, (HBRUSH) ::GetStockObject(WHITE_BRUSH) ),
title,
WS_VISIBLE | WS_HSCROLL | WS_VSCROLL | WS_OVERLAPPEDWINDOW,
CRect(0, 0, w, h),
parent,
ID_FILE_PREVIEW_WND);
我玩过各种 WS_ 和 CS_ 样式的组合,但没有成功。在我看来,窗口的非客户端部分在拖动操作期间没有被更新。
我想我在这里遗漏了一些基本的东西。任何澄清将不胜感激。