Window가 DialogBox가 아니기 때문에 WS_TABSTOP이 작동하지 않습니다. 또한 모든 컨트롤을 통해 Tab 키를 사용하지 않으려 고합니다. 몇 가지 Edit 컨트롤을 통해 Tab 키를 누릅니다.Tab을 사용하여 편집 컨트롤간에 전환 하시겠습니까?
내가 한 것은 편집 컨트롤을 수퍼 클래스로 만들고 편집 컨트롤간에 전환하는 WM_KEYDOWN 메시지를 처리하는 것으로, 다음 줄에있는 줄을 얻는 것입니다. thorugh :: GetWindow (hwnd, GW_HWNDNEXT); 또한 마지막 컨트롤에 도달했을 때 포커스를 첫 번째 Edit 컨트롤로 다시 전환하고 싶습니다.
코드가 마지막 편집 컨트롤에 도달했을 때 작동하지 않습니다. :: GetWindow는 수퍼 클래 싱되지 않은 편집 컨트롤 인 줄 (?)의 다음 창만 반환합니다. 숨겨진 하위 창 (SW_HIDE)이 더 있습니다.
아마도 내가 창 HWND의 클래스 이름을 아는 방법을 알고 있다면?
참고 : 순수 Win32 API, C++입니다.
else if ( (int) wParam == VK_TAB )
{
HWND nextInLine;
nextInLine = ::GetWindow (hwnd, GW_HWNDNEXT);
if (hwnd == NULL) nextInLine = ::GetWindow (hwnd, GW_HWNDPREV);
::SendMessage (nextInLine, EM_SETSEL, (WPARAM) 0, (LPARAM) -1);
::SetFocus (nextInLine);
return 0;
}
http://blogs.msdn.com/b/oldnewthing/archive/2003/10/21/55384.aspx – jamesdlin