C + WinAPI: Как переключаться между элементами управления с помощью клавиши Tab?

Я создал небольшое приложение на C, используя WinAPI, и у меня возникла небольшая проблема. Клавиша табуляции не переключает между элементами управления. Должен ли он быть автоматическим? Если нет, подскажите, как это реализовать? Я создал алгоритм для переключения между полями редактирования, вот заглушка:

case WM_NOTIFY
{
if tab key
{
control_id++;
SetFocus(GetDlgItem(hwnd, control id));
if control_id = max_control_id 
{ control_id = min_control_id; }

Если нет простого способа, следует ли мне использовать мой алгоритм?

PS: Я пробовал добавить TABSTOP, он не работает. Вот некоторые элементы управления, которые не работают. Я использую VS 2010 Express, 64-разрядную версию Windows 7.

hwnduser = CreateWindow (TEXT("EDIT"), NULL, 
WS_VISIBLE | WS_CHILD | WS_BORDER | WS_TABSTOP | WS_GROUP,
220, 80, 80, 20,
hwnd, (HMENU) 3, NULL, NULL);
hwndpass = CreateWindow (TEXT("EDIT"), NULL, 
WS_VISIBLE | WS_CHILD | WS_BORDER | WS_TABSTOP,
220, 130, 80, 20,
hwnd, (HMENU) 4, NULL, NULL);
CreateWindow(TEXT("button"), TEXT("Login"),
WS_VISIBLE | WS_CHILD | WS_TABSTOP | WS_GROUP,
80,200,100,30,
hwnd, (HMENU) 1, NULL, NULL);
CreateWindow(TEXT("button"), TEXT("Exit"),
WS_VISIBLE | WS_CHILD | WS_TABSTOP,
220,200,100,30,
hwnd, (HMENU) 2, NULL, NULL);
5
задан Ishan Sharma 17 April 2011 в 05:53
поделиться