请教各位关于"通知消息"的问题!

broom 2005-04-14 11:33:11
我写了一个小程序,用来处理在窗体中的按键消息,程序如下:
//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
void __fastcall FormCreate(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
void _fastcall MyMessage(TMessage &Message);
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_KEYDOWN,TMessage,MyMessage)
END_MESSAGE_MAP(TForm)
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void _fastcall TForm1::MyMessage(TMessage &Message)
{
if(this->Caption=="hello")
this->Caption="world";
else
this->Caption="hello";
TForm::Dispatch(&Message);
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{

}
//---------------------------------------------------------------------------
现在的问题是,如果我在窗体上添加一个按键,当单击它时,会有一个通知消息BN_CLICKED发生,请问各位老大,怎样用消息映射的方法来处理这个BN_CLICKED消息?
...全文
78 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
3996906 2005-04-15
  • 打赏
  • 举报
回复
你写出来的已经是消息映射了,照前面写的,用向导再+一个处理BN_CLICKED的不就好了吗?
lidawen 2005-04-15
  • 打赏
  • 举报
回复
constantine 2005-04-15
  • 打赏
  • 举报
回复
在按钮中写:SendMessage(Handle,BN_CLICKED,0,0);
不过你要捕获的不是WM_KEYDOWN,
MESSAGE_HANDLER(WM_KEYDOWN,TMessage,MyMessage)
WM_KEYDOWN,要改为BN_CLICKED才可以
broom 2005-04-15
  • 打赏
  • 举报
回复
3996906(以后再说),能说得详细一些吗?比如给出一个具体的例子行吗?

1,221

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧