C++Builder如何响应消息及自定义消息

本文详细介绍了如何在Inprise(Borland)C++Builder中响应系统已定义的消息以及如何自定义消息进行响应,包括消息的定义、响应过程及实现代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值