создаю через CreateWindowEx пару edit ов : invoke CreateWindowEx,0,Editcl,editCls, WS_CHILD+WS_VISIBLE+WS_TABSTOP,10,50,150,90,hWnd,0,hinst,NULL mov edit1,eax invoke CreateWindowEx,0,Editcl,editCls, WS_CHILD+WS_VISIBLE+WS_TABSTOP,30,50,150,90,hWnd,0,hinst,NULL mov edit2,eax при нажатии таба фокус не переходит на следующий едит ??(извените я только учусь) разанее спасибо
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui /winui/windowsuserinterface/windowing/dialogboxes/dialogboxreference/d ialogboxfunctions/isdialogmessage.asp
совсем невеселый ответ сожать на каждую форму суперклассинг ( может есть еще выход ну и через RC нехочется делать короче я ужасно ленивый
Xorbit Нет, если у тебя диалог - IsDialogMessage тебе в руки. Если обычные окна — придётся играть по правилам WinAPI…
http://msdn.microsoft.com/library/en-us/shellcc/platform/commctls/edit controls/editcontrolreference/editcontrolmessages/em_settabstops.asp?f rame=true чето такое нашел еще бы на практике попробовать EM_SETTABSTOPS Message
IceStudent Я как раз тут с кучей едитов ковырялся, окно - не диалог, обычное, через CreateWindowEx создано, у него 5 дочерних, также через CreateWindowEx, и в этих дочерних сидят едиты, от 3 до 7 шт в каждом, и ТАВ вполне прилично работает, правда пришлось немного переделать message loop, как раз с IsDialogMessage: Код (Text): .WHILE TRUE invoke GetMessage, ADDR msg,NULL,0,0 .BREAK .IF (!eax) invoke IsDialogMessage,hAddr,ADDR msg test eax,eax jnz @NextMessage invoke IsDialogMessage,hTask,ADDR msg test eax,eax jnz @NextMessage invoke IsDialogMessage,hDedt,ADDR msg test eax,eax jnz @NextMessage invoke IsDialogMessage,hCred,ADDR msg test eax,eax jnz @NextMessage invoke IsDialogMessage,hNote,ADDR msg .if (!eax) invoke TranslateMessage, ADDR msg invoke DispatchMessage, ADDR msg .endif @NextMessage: .ENDW И никаких суперклассингов не надо, т.к. Although the IsDialogMessage function is intended for modeless dialog boxes, you can use it with any window that contains controls, enabling the windows to provide the same keyboard selection as is used in a dialog box.
cresta Да, век живи, век учись.. А хэндл главного окна нельзя передать в IsDialogMessage? Чтобы избавиться от цепочки вызовов этой функции?
Не получается без цепочки, фокус передается почему-то в OutputWindow RadAsm'a Почему - пока не понял.
снова трабла, повесил я на мульти едит сабкасс при нажатии таба фокус передается куда нужно но в едит попадает знак таба, можно ли обрабатывать клавишу до попадения в едит