Как отловить ход события диалога? - PullRequest
0 голосов
/ 07 июня 2018

В моем диалоге у меня есть богатый контроль редактирования.При вводе в 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);
}

, но эти события не фиксируются при перемещении диалога.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...