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

📄 20000725004.htm

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

<HEAD>



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



<META content="MSHTML 5.00.2314.1000" name=GENERATOR>

</HEAD>

<BODY aLink=#FF0000 bgColor=#ffffff leftMargin=0 link=#187800 topMargin=0 

vLink=#990099>



<div align="center">

  <table width="744" border="0" cellspacing="0" cellpadding="0" height="76">

    <tr> 

      <td> 

        <p align=center><font size=5><strong><b><font size="3"><br>

          <br>

          C++Builder如何响应消息及自定义消息</font></b></strong></font></p>

        <p class=sfont><font color=#ffffff>----</font> Inprise(Borland) C++Builder中,可以象在Delphi中一样响应消息,只是看起来要稍复杂一点。 

          <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, GetWindowMinMaxInfo) 

          <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 Message) 

          <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类型的定义可参见:C:\ProgramFiles\Borland\CBuilder\inlucde\vcl\Messages.hpp;其它的消息响应方法与此相同。 

          <br>

          <br>

            另外,可以为自定义的消息也定义一个对应的消息结构(如:TSearchNode_Message),至于如何定义消息结构, 可以参考:C:\Program 

          Files\Borland\CBuilder\inlucde\vcl\Messages.hpp </p>

    </td>

    </tr>

  </table>

 

</div>

</BODY></HTML>

⌨️ 快捷键说明

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