當前位置:編程學習大全網 - 源碼下載 - 如何註冊全局熱鍵

如何註冊全局熱鍵

如何註冊全局熱鍵(c++builder)

這樣吧,我給妳壹個例程,包括了ResiterHotKey的用法和消息處理的用法,妳仔細看看吧。

這個程序有壹個窗體Form1,Form1上註冊了壹個熱鍵Ctrl+F11,以後只要這個程序在運行,不管在什麽,妳壹按Ctrl+F11,

就會彈出壹個消息框。

//Unit.H

//---------------------------------------------------------------------------

#ifndef Unit1H

#define Unit1H

//---------------------------------------------------------------------------

#include

#include

#include

#include

//---------------------------------------------------------------------------

class TForm1 : public TForm

{

__published: // IDE-managed Components

void __fastcall FormCreate(TObject *Sender);

void __fastcall FormDestroy(TObject *Sender);

private: // User declarations

//這個函數就是消息處理函數,通過VCL_MESSAGE_HANDLER宏和指定消息相連

void __fastcall WMHotKey(TMessage &Msg);

public: // User declarations

__fastcall TForm1(TComponent* Owner);

//以下三句就是消息處理,可以在BEGIN和END之間加入多個HANDLER

BEGIN_MESSAGE_MAP

//處理WM_HOTKEY消息,註冊熱鍵之後,按下熱鍵就會向指定窗口發出該消息

VCL_MESSAGE_HANDLER(WM_HOTKEY, TMessage, WMHotKey);

END_MESSAGE_MAP(TForm);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm1 *Form1;

//---------------------------------------------------------------------------

#endif

//Unit1.CPP

//---------------------------------------------------------------------------

#include

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

//這就是消息處理函數的實現

void __fastcall TForm1::WMHotKey(TMessage &Msg)

{

SetForegroundWindow(Handle);

ShowMessage("Hot Key Registered!");

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

RegisterHotKey(Handle, 0x1000, MOD_CONTROL, VK_F11);

//以上那句註冊熱鍵,Handle是窗口句柄,0x1000是壹個ID號,設置該熱鍵在線程中

//的唯壹值,第三個參數表示要按下那些系統鍵,最後壹個是按鍵的虛擬鍵碼

//具體可參見MSDN幫助

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormDestroy(TObject *Sender)

{

UnregisterHotKey(Handle, 0x1000);

//註銷熱鍵,0x1000和上面對應,指明註銷哪個熱鍵

}

//---------------------------------------------------------------------------

  • 上一篇:二手車可以異地過戶嗎
  • 下一篇:暑假來了,有什麽國外的好電影看?喜歡喜劇和科幻或是吸血鬼的,ps :不看惡心片哦!感激不
  • copyright 2024編程學習大全網