在我的对话框中,我有一个丰富的编辑控件。在输入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);
}
但移动对话框时未捕获到这些事件。