如何在VC++6.0中定义热键消息   消息是windows操作系统和应用程序之间进行通信的载体,操作系统将包括用 户在内的各种事件以消息的形式发送至目标,目标系统再根据消息具体的内容进 行相应的处理。   在VC++6.0中,大多数的窗口消息可以从ClassWizard中找到,但是一些不 常用的消息在ClassWizard中并没有封装,比如热键处理消息(WM_HOTKEY),用 户必须事先定义热键,然后不论该程序在前台或后台运行,只要用户按下了这个 热键,该程序就会立即在前台运行,并收到热键消息,消息处理函数执行热键中 定义的操作。要实现这些功能,用户必须在代码级进行工作,也就是说要手工编 写代码。具体步骤如下:   假设用户已经用AppWizard生成了一个单文档界面框架,在工程中主要有下列 几个文件,向导为应用程序创建了如下类:   CtestView CtestDoc CtestApp CmainFrame CAboutDlg   请按下列步骤进行:   1、在视图类的声明文件中,即testview.h文件中,找到消息映射的声名处, 在下列语句处加入热键处理函数声明:(划线部分)    //{{AFX_MSG(CTestView)    afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);    //}}AFX_MSG   LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);    DECLARE_MESSAGE_MAP()   2、在视图类的实现文件,即TestView.cpp文件中,找到消息映射的定义处, 这里是使函数和消息发生关联的地方,当发生某消息时,会调用这里定义的相应 消息处理函数,也就是说用消息映射宏使消息与相应的处理函数发生关系。   下面的语句说明WM_HOTKEY消息和OnHotkey函数发生关联。    BEGIN_MESSAGE_MAP(CTestView, CView)    //{{AFX_MSG_MAP(CTestView)    ON_WM_CREATE()    //}}AFX_MSG_MAP    // Standard printing commands    ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)    ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)    ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)    ON_MESSAGE(WM_HOTKEY,OnHotkey) //消息和函数发生关联   END_MESSAGE_MAP()   3、在OnCreate函数中加入初始化代码,向系统登记热键。    RegisterHotKey(hWnd,1001,MOD_CONTROL|MOD_ALT,‘z’);    RegisterHotKey(hWnd,1002,MOD_CONTROL|MOD_ALT,‘Z’);   本例中定义的热键为Ctrl+Alt+z。   4、在OnHotkey()处理函数中处理热键,即检查是否是所期望的热键,如果是 ,这里为了简单,弹出一个对话框,显示“You Press Ctrl+Alt+z(Z)”。   LRESULT CTestView::OnHotkey(WPARAM wParam,LPARAM lParam)   {    if(wParam==1001||wParam==1002)    MessageBox(“You Press Ctrl+Alt+z(Z)”);   return 0;   }   注意:OnHotkey()函数必须有返回值。   5、最后,不要忘了在OnDestroy()函数中解除函数登记,释放系统资源。   UnregisterHotKey(m_hWnd,1001);   UnregisterHotKey(m_hWnd,1002);   这样程序运行后,无论程序在前台或后台运行,只要你按下Ctrl+Alt+z,就 会执行热键处理函数中的代码,这里弹出对话框。读者可以自行在自己的热键处 理函数中加入需要的代码来完成特定的功能。该程序在Pwin98平台上,在Visual C++6.0中调试通过。   (沈阳 金波)