0

これは、MDI アーキテクチャを使用する大規模な MFC アプリケーションの一部です。Microsoft Visual Studio 2019 を使用して記述されています。

ユーザーがテキスト ファイルの解析について決定できるように、テキスト ファイルの最初の数行を表示するウィンドウを作成したいと考えています。新しいウィンドウは Document/View アーキテクチャ全体に適合しないため、デスクトップ ウィンドウを親にしました。ウィンドウが正常に作成され、画面の左上に正常に配置され、テキスト ファイルの最初の数行が表示されます。ただし、新しい場所にドラッグすると、ドラッグ中にアウトラインが描画されず、最終的には意図した場所に配置されるため、ユーザーに視覚的なフィードバックはありません。

ウィンドウを作成するコードは次のとおりです。

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_ スタイルのさまざまな組み合わせを試してみましたが、成功しませんでした。ドラッグ操作中にウィンドウの非クライアント部分が更新されていないように思えます。

ここで基本的なものが欠けていると思います。明確化をいただければ幸いです。

4

1 に答える 1