Передача фокуса между кнопками
От: lexer_lx Украина  
Дата: 21.04.03 11:23
Оценка:
Недавно столкнулся со следующей проблемой:
в приложении типа DialogBased есть две кнопки,
и нужно при нажатии на первую передать фокус на вторую.
Делаю следующим образом :
в обработчике нажатия первой кнопки —
m_SecondButton.SetFocus();
Происходит следующее: прямоугольник фокуса переходит
на вторую кнопку, но на самом деле фокуса на ней нет,
и где он находится — неизвестно (!!??).
При нажатии на enter праложение закрывается
(происходит onClose()).
Буду рад любым советам

21.04.03 15:48: Перенесено из 'C/C++'
Re: Передача фокуса между кнопками
От: peterbes Россия  
Дата: 21.04.03 11:43
Оценка:
Здравствуйте, lexer_lx, Вы писали:


_>При нажатии на enter праложение закрывается

_>(происходит onClose()).
_>Буду рад любым советам

Блокировка закрытия окна по escape и return.
Нужно переопределить ф-цию PreTranslateMessage


BOOL CTestAxGComDlg::PreTranslateMessage(MSG* pMsg) 
{
    
        if(pMsg->message == WM_KEYDOWN)
        {
            
            if(pMsg->wParam == VK_ESCAPE || pMsg->wParam == VK_RETURN)
            {
                return 0;
            }
        }
    return CDialog::PreTranslateMessage(pMsg);
}
Re: Передача фокуса между кнопками
От: kmn Украина  
Дата: 22.04.03 15:43
Оценка:
Здравствуйте, lexer_lx, Вы писали:

_>Недавно столкнулся со следующей проблемой:

_>в приложении типа DialogBased есть две кнопки,
_>и нужно при нажатии на первую передать фокус на вторую.
_>Делаю следующим образом :
_>в обработчике нажатия первой кнопки —
_> m_SecondButton.SetFocus();
_>Происходит следующее: прямоугольник фокуса переходит
_>на вторую кнопку, но на самом деле фокуса на ней нет,
_>и где он находится — неизвестно (!!??).
_>При нажатии на enter праложение закрывается
_>(происходит onClose()).
_>Буду рад любым советам


MFC: GotoDlgCtrl(&m_SecondButton);

API: ::SendMessage(m_hWnd, WM_NEXTDLGCTL, (WPARAM)SecondButton.m_hWnd, 1L);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.