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

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

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

MINMAXINFO *MinMaxInfo=Message.MinMaxInfo;

MinMaxInfo->ptMinTrackSize.x=400;

MinMaxInfo->ptMinTrackSize.y=300;

return;

}

  其中:TMessage和TWMGetMinMaxInfo类型的定义可参见:C:

\ProgramFiles\Borland\CBuilder\inlucde\vcl\Messages.hpp;其它的消息响应方法与此

相同。

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

至于如何定义消息结构, 可以参考:C:\Program

Files\Borland\CBuilder\inlucde\vcl\Messages.hpp

C++Builder如何响应消息及自定义消息相关推荐

  1. 学习 Message(4): 通过 Application.OnMessage 或 TApplicationEvents 响应消息

    通过 Application.OnMessage 响应消息: unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classe ...

  2. HTTP协议 ----响应消息

    HTTP协议 1. 请求消息:客户端发送给服务器端的数据 * 数据格式:         1. 请求行         2. 请求头         3. 请求空行         4. 请求体 2. ...

  3. MFC中如何让一个CStatic控件响应消息

    在MFC中有时需要自己Create控件,如何写一个可以响应消息的控件呢,例如:CStatic 如下: CStatic test; test.Create("my static",  ...

  4. HTTP_响应消息_响应行_状态码

    2. 响应消息:服务器端发送给客户端的数据     * 数据格式:         1. 响应行             1. 组成:协议/版本 响应状态码 状态码描述             2. ...

  5. HTTP协议简介_请求消息/请求数据包/请求报文_响应消息/响应数据包/响应报文

    文章目录 HTTP 介绍 请求数据包/请求消息/请求报文 请求数据包解析 响应数据包/响应消息/响应报文 HTTP 介绍 概念:Hyper Text Transfer Protocol 超文本传输协议 ...

  6. http请求消息体和响应消息体

    HTTP基于请求与响应模式的.无状态的.应用层的协议,常基于TCP的连接方式.HTTP允许传输任意类型的数据对象,HTTP协议是无状态协议.无状态是指协议对于事务处理没有记忆能力.缺少状态意味着如果后 ...

  7. 第三篇 :微信公众平台开发实战Java版之请求消息,响应消息以及事件消息类的封装...

    微信服务器和第三方服务器之间究竟是通过什么方式进行对话的? 下面,我们先看下图: 其实我们可以简单的理解: (1)首先,用户向微信服务器发送消息: (2)微信服务器接收到用户的消息处理之后,通过开发者 ...

  8. HTTP请求消息头和HTTP响应消息头

    2019独角兽企业重金招聘Python工程师标准>>> HTTP请求消息头部实例: Host:rss.sina.com.cn //客户端指定自己想访问的WEB服务器的域名/IP 地址 ...

  9. cjuiautocomplete ajax,Yii CJuiAutoComplete小部件:空响应消息事件

    如果响应不包含关于城市的数据,我希望看到输出消息.另外,我想改变文本字段中的文本时,我得到一个空的答复.Yii CJuiAutoComplete小部件:空响应消息事件 我有: 检视: $this-&g ...

最新文章

  1. 世界各大天文台联合预警:今晚公布“引力波重要发现”
  2. python订单管理系统功能_订单管理系统有哪些功能?
  3. js中期BOM及this指向
  4. python numba库是什么,如何给python代码加速?JIT、autoit、LLVM
  5. 单片机定时报警C语言程序,51单片机 定时器 中断程序 (C语言)
  6. position定位说明
  7. AGC034 F - RNG and XOR
  8. Java基础知识复习(二)
  9. Round Numbers POJ - 3252(数位dp+判断前导零)
  10. python模糊匹配忽略大小写_在python中忽略大小写的简单方法?
  11. 【三维深度学习】点云上采样网络PU-Net
  12. 【Windows】关于shift和空格同时按无反应的解决方案
  13. 人是中国开源产业发展的战略制高点
  14. 乌班图vim怎么编译c语言,在Ubuntu上利用vim进行程序编写及运行
  15. STM32入门100步
  16. edp接口规范_EDP接口是什么接口?EDP是什么的缩写?
  17. Shiro反序列化漏洞检测及修复(工具分享)
  18. 微信小程序直接上传文件到阿里云OSS组件封装
  19. Pygame 实现一个简单画图板
  20. python文件开头# coding=gbk的用途

热门文章

  1. 学习笔记-记ActiveMQ学习摘录与心得(一)
  2. 记录 FreeBSD
  3. hdu 5277(最大团问题)
  4. POJ 1505(二分+贪心)
  5. 算法入门开灯问题,新做法
  6. Graph Neural Networks: A Review of Methods and Applications(Semantic Segmentation应用解读)
  7. CSS之box-shadow
  8. hdu 1228-A+B
  9. 第二章 Vue快速入门-- 28 自定义按键修饰符
  10. spring源码阅读(3)-- 容器启动之BeanFactoryPostProcessor