Я хотел бы реализовать эффект TAB для нескольких текстовых полей. После ввода значения в текстовое поле и затем нажатия клавиши ввода фокус должен автоматически перемещаться в следующее текстовое поле (аналогично нажатию клавиши TAB с фокусом в текстовом поле). В настоящее время я пытаюсь использовать этот фрагмент кода в PreTranslateMessage ():
if ( (pMsg->wParam == VK_RETURN) )
{
if( m_CeditCtrlLlaLatDegrees.GetFocus() )
{
keybd_event( VK_TAB,0x09,0,0);
// keybd_event( VK_TAB,0x09,KEYEVENTF_KEYUP,0);
}
}
Приведенный выше код переносит фокус на текстовое поле, следующее за следующим непосредственным текстовым полем (т.е.
он перемещается на 2 вкладки вперед). Имеется 20 текстовых полей, взятых из CEdit, и все они принимают только числовые значения.
Как мне получить идентификатор для каждого из этих текстовых полей? Я попытался назначить CEdit (управляющую переменную) и получить доступ к идентификатору для каждого текстового поля, затем с помощью оператора switch-case я бы проверил, какое текстовое поле активно, а затем SetFocus () для следующего немедленного (все это в PreTranslateMessage ()). Но даже это не сработает.
Пожалуйста, предложите способ заставить это работать. Пожалуйста, дайте мне знать поток / код подробно, так как я новичок.