giron Opublikowano 1 Lutego 2005 Zgłoś Opublikowano 1 Lutego 2005 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 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Polar Opublikowano 2 Lutego 2005 Zgłoś Opublikowano 2 Lutego 2005 (edytowane) 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 2 Lutego 2005 przez razor1 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...