Пятница - 23.04.2021 - 09:03:45

Warning: fopen(dudarikfiles/php/htm_temples/cout_vis/shortcut_cnt.inc) [function.fopen]: failed to open stream: Permission denied in /home/wlst/d/u/d/dudarik/public_html/dudarikfiles/php/htm_temples/counter.php on line 50

Warning: fwrite() expects parameter 1 to be resource, boolean given in /home/wlst/d/u/d/dudarik/public_html/dudarikfiles/php/htm_temples/counter.php on line 53

Warning: fclose() expects parameter 1 to be resource, boolean given in /home/wlst/d/u/d/dudarik/public_html/dudarikfiles/php/htm_temples/counter.php on line 54
23
0

Горячие клавиши для неактивного окна.

   «Горячие» клавиши очень часто используются в приложениях. Их можно установить с помощью таких компонентов, как Menu, ShortCut. Но действие этих «горячих» клавиш распостраняется только в том случае, если окно нашего приложения активно, но как только фокус перешел на другое окно, наши «горячие» клавиши становятся не активными. Что же делать?
   Для этого существует АPI функция RegisterHotKey(). Она регистрирует наши «горячие» клавиши в системе, и с этого момента они становятся доступными на всем протяжении работы нашей программы.

    Последовательность наших действий:
  1. Объявляем карту сообщений в файле .h.
  2. Регистрируем «горячие» клавиши.
  3. Снимаем регистрацию.
  4. Описываем наши действия в функции
               
   //1.Объявление в файле .h
   private:
                   void __fastcall WMHotKey(TWMHotKey&);
   public:
                  BEGIN_MESSAGE_MAP
                   MESSAGE_HANDLER(WM_HOTKEY, TWMHotKey, WMHotKey)
                  END_MESSAGE_MAP(TComponent)
     
   //2.Код в файле .cpp
   void __fastcall TForm1::TForm1(TComponent* Owner)
   {
    RegisterHotKey(Handle,125,MOD_ALT,int('Z'));
   }
   //3.-------------------------------
   void __fastcall TForm1::FormDestroy(TObject *Sender)
   {
    UnregisterHotKey(Handle,125);
   }
   //4.------------------------------- 
   void __fastcall TForm1::WMHotKey(TWMHotKey &a)
   {
    if(a.HotKey==125)
    {... наши действия;}
   }
   
MOD_ALT - клавиша Alt
MOD_CONTROL - клавиша Ctrl
MOD_SHIFT - клавиша Shift


   Вот и все кратко, но надеюсь все понятно. Будут вопросы задавайте в гостевой книги.
   В следуюющем уроке расскажу как я создавал свой таймер.