Skocz do zawartości
giron

Registerhotkey Vc++

Rekomendowane odpowiedzi

jak uzywa sie registerhotkey w VC++ ?

rozumiem ze w OnCreate wywolam funkcje RegisterHotKey(...)

a w OnClose funkcje UInregisterHotKey(..)

 

ale gdzie wstawie obsluge hot key ?

wszedzie pisza o jakims WM_HOTKEY ale widze ze w VC++ nie ma w ClassWizard takiej wiadomosci !

prosze o pomoc !

dzieki i pozdrawiam

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Nie wiem dokładnie jak to jest w IDE Microsoftu , ale powiem jak to ma być w IDE Borlanda ( może ci się przyda ).

A na pewno się przyda wielu osobom które nie wiedzą jak to zrobić a nie umieją uzywać google.com. :D

 

// to wstawiamy np do FormCreate lub do jakiegoś przyciskuvoid __fastcall TForm1::FormCreate(TObject *Sender){   RegisterHotKey(Form1->Handle, 0x0001, MOD_CONTROL, VK_F4);}// to wstawiamy do FormClose lub do jakiegoś przyciskuvoid __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action){   UnregisterHotKey(Form1->Handle, 0x0001);}

// to wstawiamy do kodu void TForm1::WMHotKey(TMessage& Message){  if(Message.WParam == 0x0001)  {    MessageBox(Handle,"Akcja!!!","",MB_OK);  }}

// to wstawiamy do klasy TForm1 do sekcji public:  void WMHotKey(TMessage& Message); //przechwytywanie klawisza    BEGIN_MESSAGE_MAP  MESSAGE_HANDLER(WM_HOTKEY,TMessage,WMHotKey);  END_MESSAGE_MAP(TComponent)

Oto pełny listing:

// dla pliku cpp

//---------------------------------------------------------------------------#include <vcl.h>#pragma hdrstop#include "Unit1.h"//---------------------------------------------------------------------------#pragma package(smart_init)#pragma resource "*.dfm"TForm1 *Form1;//---------------------------------------------------------------------------__fastcall TForm1::TForm1(TComponent* Owner)        : TForm(Owner){}//---------------------------------------------------------------------------void TForm1::WMHotKey(TMessage& Message){  if(Message.WParam == 0x0001)  {     MessageBox(Handle,"Wciśnięto CTRL+F4","",MB_OK);  }  else if (Message.WParam == 0x0002)  {     MessageBox(Handle, "Wciśnięto ALT+F3" , "" , MB_OK);  }}//---------------------------------------------------------------------------void __fastcall TForm1::FormCreate(TObject *Sender){   RegisterHotKey(Form1->Handle, 0x0001, MOD_CONTROL, VK_F4);   RegisterHotKey(Form1->Handle, 0x0002, MOD_ALT, VK_F3);}//---------------------------------------------------------------------------void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action){   UnregisterHotKey(Form1->Handle, 0x0001);   UnregisterHotKey(Form1->Handle, 0x0002);}//---------------------------------------------------------------------------

// dla pliku h

 

//---------------------------------------------------------------------------#ifndef Unit1H#define Unit1H//---------------------------------------------------------------------------#include <Classes.hpp>#include <Controls.hpp>#include <StdCtrls.hpp>#include <Forms.hpp>//---------------------------------------------------------------------------class TForm1 : public TForm{__published:        void __fastcall FormCreate(TObject *Sender);        void __fastcall FormClose(TObject *Sender, TCloseAction &Action);private:public:         __fastcall TForm1(TComponent* Owner);         void WMHotKey(TMessage& Message);  BEGIN_MESSAGE_MAP             // tworzymy mapę komunikatów  MESSAGE_HANDLER(WM_HOTKEY,TMessage,WMHotKey);  END_MESSAGE_MAP(TComponent)};//---------------------------------------------------------------------------extern PACKAGE TForm1 *Form1;//---------------------------------------------------------------------------#endif
Edytowane przez razor1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...