В моем диалоге у меня есть богатый контроль редактирования.При вводе в richeditcontrol я отображаю окно списка для автозаполнения.
Чтобы отобразить это окно списка, сверху всех дочерних элементов управления в диалоговом окне, как предлагается в этой ссылке, Как создать окновсегда появляются поверх других окон? Я создал экземпляр CWnd с WS_POPUP и создал экземпляр 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);
}
, но эти события не фиксируются при перемещении диалога.