Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Вниз

При нажатии TAB фокус не перескакивает с одного контрола на др.   Найти похожие ветки 

 
gdaujk ©   (2004-12-16 10:27) [0]

program MyProg;

uses
 Windows,
 Messages;

procedure CreateControls(Wnd: HWND);
begin
 InitCommonControls;

 Group1 := CreateWindow("button", "Âðåìÿ äåéñòâèÿ",
                 WS_CHILD or WS_VISIBLE  or WS_TABSTOP
                       or WS_GROUP or BS_GROUPBOX,
                      7, 3, 176, 56,
                      Wnd, 0, hinstance, nil);

 hLab :=  CreateWindow("static", "×àñ",
                      WS_CHILD or WS_VISIBLE or SS_LEFT or
                      WS_GROUP,
                      15, 29, 19, 13,
                      Wnd, 1, hInstance, nil);

 hEd := CreateWindowEx(WS_EX_CLIENTEDGE ,"edit", nil,
                      WS_CHILD or WS_VISIBLE or WS_TABSTOP or
                      ES_LEFT or ES_READONLY,
                      43, 28, 36, 18,
                      Wnd, 2, hInstance, nil);

 hUD := CreateUpDownControl(WS_CHILD or WS_BORDER or
                      WS_VISIBLE or WS_TABSTOP or UDS_MY,
                      0, 0, 0, 0,
                      Wnd, 3, hInstance,
                      hEd, 23, 0, 0);

 mLab := CreateWindow("static", "ìèíóòà",
                      WS_CHILD or WS_VISIBLE or SS_LEFT or
                      WS_GROUP,
                      90, 29, 36, 13,
                      Wnd, 4, hInstance, nil);

 mEd := CreateWindowEx(WS_EX_CLIENTEDGE ,"edit", nil,
                      WS_CHILD or WS_VISIBLE or WS_TABSTOP or
                      ES_LEFT or ES_READONLY,
                      135, 28, 36, 18,
                      Wnd, 5, hInstance, nil);

 mUD := CreateUpDownControl(WS_CHILD or WS_BORDER or WS_VISIBLE or WS_TABSTOP or UDS_MY,
                      0, 0, 0, 0,
                      Wnd, 6, hInstance,
                      mEd, 59, 0, 0);
end;
 

{WinMain}

function WinMain(aWND: HWND; aMsg: Integer; aWParam: WPARAM; aLParam: LPARAM): LRESULT; stdcall;

 procedure RadioClick(Off: Boolean);
 begin
   if HiWord(awParam) = BN_CLICKED then
   begin
     EnableWindow(MusBtn, not Off);
     MyOpt.ShutDown := Off;
   end;
 end;

begin
 Result:=0;
 case aMsg of
   WM_CREATE:
     begin
       CreateControls(aWND);
     end;
   WM_COMMAND :
     begin
     case LoWord(awParam) of
       10: RadioClick(True);
       11: RadioClick(False);
       end;
     end;

   MM_MCINOTIFY:
     begin
       CloseMCI(aWnd);
       if MyOpt.CloseAfterStop and Play
          then PostMessage (aWnd , WM_CLOSE, 0, 0);
     end;

   
   WM_DESTROY{WM_CLOSE}:
     begin
       DeleteObject(MainFont);
       DelateSysTrayPlease;
       PostQuitMessage(0);
       Result:=0;
       exit;
     end;
 else
   Result := DefWindowProc(aWND, aMsg, aWParam, aLParam);
 end;
end;

begin
 WC.style := CS_HREDRAW or CS_VREDRAW;
 WC.lpfnWndProc := @WinMain;
 WC.cbClsExtra := 0;
 WC.cbWndExtra := 0;
 WC.hInstance := HInstance;
 WC.hIcon := LoadIcon(hInstance, PChar("MAINICON"));
 WC.hCursor := LoadCursor(0, IDC_ARROW);
 WC.hbrBackground := COLOR_BTNFACE + 1;
 WC.lpszMenuName := nil;
 WC.lpszClassName := ClassName;

 RegisterClass(WC);

 MainWND := CreateWindowEx(WS_EX_CONTROLPARENT ,ClassName,
                         Name,
                         WS_CAPTION or WS_SYSMENU or   WS_MINIMIZEBOX,
                         CenterX(291),
                         CenterY(198),
                         307, 197,
                         0, 0, hInstance, nil);

 SysMenu := GetSystemMenu(MainWND, False);
 DeleteMenu(SysMenu, SC_MAXIMIZE, MF_BYCOMMAND);
 DeleteMenu(SysMenu, SC_SIZE, MF_BYCOMMAND);

 GetOptions;

 if not (LoadWithParam and MyOpt.Minimize)
   then ShowWindow(MainWnd, 1);

 UpdateWindow(MainWnd);

 while(GetMessage(Mes, 0, 0, 0)) do
 begin
   TranslateMessage(Mes);
   DispatchMessage(Mes);
 end;
end.


 
gdaujk ©   (2004-12-16 10:34) [1]

WM_KEYUP:
     begin
     if awParam = VK_TAB
         then SetFocus(offRadio) ;
     end;


 
gdaujk ©   (2004-12-16 10:38) [2]

offRadio := CreateWindow("button", "Âûêëþ÷èòü êîìïüþòåð",
                     WS_CHILD or WS_VISIBLE  or WS_TABSTOP  or BS_AUTORADIOBUTTON,
                      15, 92, 134, 18,
                      Wnd, 10, hinstance, nil);


 
DVM ©   (2004-12-16 10:39) [3]


> gdaujk ©   (16.12.04 10:34) [1]


> WM_KEYUP:
>      begin
>      if awParam = VK_TAB
>          then SetFocus(offRadio) ;
>      end;

Если это написано в главной оконной процедуре, то с какой стати это должно работать?


 
gdaujk ©   (2004-12-16 10:43) [4]

Ну, а как тогда сделать, чтоб фокус всё же менялся ???


 
DVM ©   (2004-12-16 10:56) [5]


> Ну, а как тогда сделать, чтоб фокус всё же менялся ???

В цикл выборки сообщений поставить проверку и передачу фокуса. Или у каждого контрола в его оконной процедуре.


 
SVM (Perm)   (2004-12-16 13:25) [6]

Смотри IsDialogMessage...



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.059 c
4-1102977934
HydraMarat
2004-12-14 01:45
2005.02.06
Поймать данные Com-порта в основном потоке


1-1106296299
sardox
2005-01-21 11:31
2005.02.06
Пролистать memo


1-1106667069
serg128
2005-01-25 18:31
2005.02.06
Как получить прозрачную форму, но всё, что на ней - видимое?


3-1104926804
Marat
2005-01-05 15:06
2005.02.06
Блокировка сервера


1-1106311935
Yr2
2005-01-21 15:52
2005.02.06
Протокол работы PC с мобильным телефоном





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский