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

📄 lc_bcb_05.html

📁 C++Builder教学大全
💻 HTML
字号:
<html>



<head>



<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<title>C++Builder如何响应消息及自定义消息</title>

</head>



<body>

<div align="center"><center>



<table border="0" cellpadding="0" cellspacing="0" width="748">

  <tr>

    <td width="748"><p align="center"><big><big><big><strong>C++Builder如何响应消息及自定义消息</strong></big></big></big></p>

    <p><big>Inprise(Borland) C++Builder中,可以象在Delphi中一样响应消息,</big><br> 

    只是看起来要稍复杂一点。 <br> 

    <br> 

    对于系统已定义的消息,可以直接响应: <br> 

    <br> 

    #define WM_MY_OPEN_CMDLINE_FILE (WM_USER+1) //进程间通讯的自定义消息 <br> 

    #define WM_MY_SEARCH_NODE (WM_USER+2) //查找命令的自定义消息 <br> 

    <br> 

    class TSomeForm : public TForm <br> 

    { <br> 

    //...类中的其它代码 <br> 

    protected: <br> 

    //消息的响应过程 <br> 

    void __fastcall OpenCmdLineFile(TMessage Message); <br> 

    void __fastcall SearchDocumentNode(TMessage Message); <br> 

    void __fastcall GetWindowMinMaxInfo(TWMGetMinMaxInfo Message); <br> 

    <br> 

    //以下通过宏定义实现消息的正确响应 <br> 

    BEGIN_MESSAGE_MAP <br> 

    MESSAGE_HANDLER(WM_MY_OPEN_CMDLINE_FILE, TMessage, OpenCmdLineFile) <br> 

    MESSAGE_HANDLER(WM_MY_SEARCH_NODE, TMessage, SearchDocumentNode) <br> 

    MESSAGE_HANDLER(WM_GETMINMAXINFO , TWMGetMinMaxInfo, GetWindowMinMaxIn <br> 

    fo) <br> 

    END_MESSAGE_MAP(TForm) <br> 

    <br> 

    };//end class <br> 

    <br> 

    //以下为实现代码 <br> 

    void __fastcall TSomeForm::OpenCmdLineFile(TMessage Message) <br> 

    {//直接通过消息结构传递参数 <br> 

    LPSTR lpCmdLine=(LPSTR)Message.LParam;//从Message中取得参数 <br> 

    this-&gt;HandleCmdLineFile(lpCmdLine);//处理命令行的参数 <br> 

    return; <br> 

    } <br> 

    <br> 

    void __fastcall TSomeForm::SearchDocumentNode(TMessage Message) <br> 

    {//响应查找消息 <br> 

    //Message中的参数在此处不需要。 <br> 

    this-&gt;SearchNode(); <br> 

    return; <br> 

    } <br> 

    <br> 

    void __fastcall TSomeForm::GetWindowMinMaxInfo(TWMGetMinMaxInfo Messag <br> 

    e) <br> 

    {//设置主窗口的最小尺寸 <br> 

    MINMAXINFO *MinMaxInfo=Message.MinMaxInfo; <br> 

    MinMaxInfo-&gt;ptMinTrackSize.x=400; <br> 

    MinMaxInfo-&gt;ptMinTrackSize.y=300; <br> 

    return; <br> 

    } <br> 

    <br> 

    其中:TMessage和TWMGetMinMaxInfo类型的定义可参见: <br> 

    <br> 

    C:\Program Files\Borland\CBuilder\inlucde\vcl\Messages.hpp;其它的消息 <br> 

    响应方法与此相同。 <br> 

    <br> 

    另外,可以为自定义的消息也定义一个对应的消息结构(如:TSearchNode_Mes  

    <br> 

    sage),至于如何定义消息结构, 可以参考:<br> 

    C:\Program Files\Borland\CBuilder\inlucde\vcl\Messages.hpp </big></big></p>

    </td>

  </tr>

</table>

</center></div>

</body>

</html>

⌨️ 快捷键说明

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