如何捕捉对话的移动事件?

时间:2018-06-07 10:58:43

标签: mfc

在我的对话框中,我有一个丰富的编辑控件。在输入richeditcontrol时,我显示了一个自动完成的列表框。

要显示此列表框,请按照此链接中的建议How to make a window always appear on top of other windows?显示对话框中所有子控件的顶部 我用WS_POPUP创建了一个CWnd实例,并创建了CListBox实例作为该CWnd的子代。

现在当我移动对话框或更改位置时,我需要更改弹出窗口的位置和我创建的列表框。

我在移动对话框时尝试捕获on_wm_poschanged,on_move和onsize事件但没有触发任何事件?

如何捕捉对话的移动事件?

我的对话框有ws_child样式。 这是我的留言地图。

    BEGIN_MESSAGE_MAP(CMyChildDlg, CMyDlg)
        ON_WM_SIZE()
        ON_WM_WINDOWPOSCHANGING()
        ON_WM_MOVING()
        ON_MOVE()
        ON_WM_WINDOWSPOSCHANGED()
    END_MESSAGE_MAP()

void CMyChildDlg::OnSize(UINT nType, int cx, int cy) 
{
    CDialog::OnSize(nType, cx, cy);
}

void CMyChildDlg::OnWindowPosChanging(WINDOWPOS FAR* lpwndpos) 
{
     CDialog::OnWindowPosChanging(lpwndpos);

}

void CMyChildDlg::OnMove(int x, int y)
{
    CDialog::OnMove(nType, cx, cy);
}

void CMyChildDlg::OnMoving(UINT nSide, LPRECT lpRect)
{
    CDialog::OnMoving(nSide, lpRect);
}

void CMyChildDlg::OnWindowPosChanged(WINDOWPOS FAR* lpwndpos) 
{
     CDialog::OnWindowPosChanging(lpwndpos);
}

但移动对话框时未捕获到这些事件。

0 个答案:

没有答案