0

我使用资源编辑器(使用 Visual C++,X64)在对话框上创建了按钮。在按钮单击事件上,我必须显示另一个大小完全相同且位置相同的窗口(有关更多详细信息,我想告诉您我有两个按钮“下一个”和“上一个”。单击它们时我有预览分别是“图像”和“文件”)。我的对话框使用来自 GetWindow 函数的父句柄。请看这个——

   SomeClassOrFounctionNoMatterWhat::GetWindow(HWND *phwnd)
    {
        HRESULT hr = E_INVALIDARG;
        if (phwnd)
        {
            *phwnd = m_hwndParent; //m_hwndParent is the parent handle now
            hr = S_OK;
        }
        return hr;
    }

所以我的意思是父句柄是 m_hwndParent 并且使用这个句柄我使用这个创建了对话框 -

m_hwndPreview = CreateDialogParam(g_hInst
                                  MAKEINTRESOURCE(IDD_MAINDIALOG),
                                  m_hwndParent,
                                  (DLGPROC)DialogProc,
                                  (LPARAM)this);

m_hwndPreview包含我在对话框上创建的按钮IDD_MAINDIALOG。在按钮单击事件上,我正在显示这样的文件内容-

m_hwndPreview3 = CreateWindowExW(0,
                                 MSFTEDIT_CLASS,
                                 NULL, //This window is to display the html file.
                                 WS_CHILD|WS_VISIBLE|WS_VSCROLL|ES_MULTILINE|ES_READONLY|WS_EX_TOPMOST,
                                 m_rcParent.left, m_rcParent.top,
                                 RECTWIDTH(m_rcParent),RECTHEIGHT(m_rcParent),
                                 m_hwndPreview,
                                 NULL,
                                 NULL,
                                 NULL);  // similarly m_hwndPreview2 for image preview

请参阅我使用 m_hwndPreview 作为包含按钮的父级。我这样做是因为我想在每个窗口上都有按钮,以便通过单击它们来显示不同的内容。

所以我的问题是按钮已成功创建并且工作正常但是当我单击任何按钮时,它会将我带到不同的窗口以显示文件或图像。但是当它把我带到不同的窗口时,按钮第一眼就消失了,只有当我将鼠标移到它们上面时它们才会出现。

我应该怎么做才能让按钮出现在每个窗口上而不将鼠标移到它们上面?

4

0 回答 0