CB非可视组件的消息处理本领[VC/C++编程]
本文“CB非可视组件的消息处理本领[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
一个非可视的组件必须对Windows操作系统或用户定义的消息作出呼应.但是,由于一个非可视组件没有窗口,因此它也没有窗口句柄,自然它也不能接纳到消息,为了办理这一问题,我们的思绪是成立一个躲藏的窗口,使非可视组件可以接纳到消息.
为了给你的非可视组件成立一个躲藏的窗口,需求有以下:
1.一个私有变量型(Private Variable)的HWnd来获得窗口句柄.
2.一个用来捕捉窗口发送给组件的函数(a WndProc).
3.对AllcolateHwnd的调用使之成立窗口句柄并设置WndProc.
为了清楚的注释上述思绪和展示成立历程,下面我们将以一个具体的实例来阐明.
首先我们先成立一个新的组件,在C++ Builder中,挑选FILE|NEW…双击组件图标显示一个新的组件对话框改变Ancestor Type为Tcomponent和Class name为Ttest并设置完毕.
然后,切换到新组件的头文件,在类的私有部份(private section)加入以下声明:
HWnd Fhandle;
void __fastcall WndProc(Tmessage &Msg);
第一行声明了一个调用Fhandle的HWnd变量,这个变量将用于窗口成立后捕捉窗口句柄.
第二行声明了一个用于接纳消息的WndProc函数.这个函数的声明必须加以标识,以便限定它是一个WndProc,然后在类声明Public(公有)部份构造以下声明:
Viod DoIt( );
这个公有函数将被我们用来测试组件,类声明应以下:
class PACKAGE Ttest:public Tcomponent
{
private:
HWnd Fhandle;
void __fastcall WndProc(Tmessage &Msg);
protected:
public:
__fastcall Ttest(Tcomponent *Owner);
void DoIt( );
__published:
};
以上是“CB非可视组件的消息处理本领[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |