⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lc_bcb_05.txt

📁 c++ builder 的一些txt文档
💻 TXT
字号:

C++Builder如何响应消息及自定义消息
  
    C++Builder如何响应消息及自定义消息
    
Inprise(Borland) C++Builder中,可以象在Delphi中一样响应消息,
    只是看起来要稍复杂一点。 
    
    对于系统已定义的消息,可以直接响应: 
    
    #define WM_MY_OPEN_CMDLINE_FILE (WM_USER+1) //进程间通讯的自定义消息 
    #define WM_MY_SEARCH_NODE (WM_USER+2) //查找命令的自定义消息 
    
    class TSomeForm : public TForm 
    { 
    //...类中的其它代码 
    protected: 
    //消息的响应过程 
    void __fastcall OpenCmdLineFile(TMessage Message); 
    void __fastcall SearchDocumentNode(TMessage Message); 
    void __fastcall GetWindowMinMaxInfo(TWMGetMinMaxInfo Message); 
    
    //以下通过宏定义实现消息的正确响应 
    BEGIN_MESSAGE_MAP 
    MESSAGE_HANDLER(WM_MY_OPEN_CMDLINE_FILE, TMessage, OpenCmdLineFile) 
    MESSAGE_HANDLER(WM_MY_SEARCH_NODE, TMessage, SearchDocumentNode) 
    MESSAGE_HANDLER(WM_GETMINMAXINFO , TWMGetMinMaxInfo, GetWindowMinMaxIn 
    fo) 
    END_MESSAGE_MAP(TForm) 
    
    };//end class 
    
    //以下为实现代码 
    void __fastcall TSomeForm::OpenCmdLineFile(TMessage Message) 
    {//直接通过消息结构传递参数 
    LPSTR lpCmdLine=(LPSTR)Message.LParam;//从Message中取得参数 
    this->HandleCmdLineFile(lpCmdLine);//处理命令行的参数 
    return; 
    } 
    
    void __fastcall TSomeForm::SearchDocumentNode(TMessage Message) 
    {//响应查找消息 
    //Message中的参数在此处不需要。 
    this->SearchNode(); 
    return; 
    } 
    
    void __fastcall TSomeForm::GetWindowMinMaxInfo(TWMGetMinMaxInfo Messag 
    e) 
    {//设置主窗口的最小尺寸 
    MINMAXINFO *MinMaxInfo=Message.MinMaxInfo; 
    MinMaxInfo->ptMinTrackSize.x=400; 
    MinMaxInfo->ptMinTrackSize.y=300; 
    return; 
    } 
    
    其中:TMessage和TWMGetMinMaxInfo类型的定义可参见: 
    
    C:\Program Files\Borland\CBuilder\inlucde\vcl\Messages.hpp;其它的消息 
    响应方法与此相同。 
    
    另外,可以为自定义的消息也定义一个对应的消息结构(如:TSearchNode_Mes 
    
    sage),至于如何定义消息结构, 可以参考:
    C:\Program Files\Borland\CBuilder\inlucde\vcl\Messages.hpp 
    返回
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -