BCB控件制作和消息处理
: __property ansistring caption={read=fcaption, write=fcaption}; }; #endif //vcapdlg.cpp #include #pragma hdrstop #include "vcapdlg.h" #include "vcap.cpp" #pragma package(smart_init) static inline tvcaptiondlg * validctrcheck() { return new tvcaptiondlg(null); } namespace vcapdlg { void __fastcall package register() { tcomponentclass classes[1]={__classid(tvcaptiondlg)}; registercomponents("mailuo",classes,0); } } __fastcall tvcaptiondlg::tvcaptiondlg(tcomponent * owner) :tcomponent(owner) { fcaption="mailuo''s sample"; } void __fastcall tvcaptiondlg::execute() { vcform=new tvcform(application); vcform->caption=caption; vcform->showmodal(); delete vcform; } 控件的安装不再赘述。 4 结语 本文旨在演示c++ builder的控件制作和消息处理、sdk等高级编程技术。以上代码全部在pwin98/c++ builder 3.0上通过调试。顺便指出,c++ builder的帮助文档中的creating custom components讲控件制作讲得非常好,是学习编写控件的不可多得的好教程。但其中making a dialogbox a component一篇中有两处小小瑕疵:一是including the form unit中所讲用pragma link vcap.obj的方法是一个相对麻烦的方法,因为需要先将vcap.cpp放入一个无关项目中编译以生成obj文件(或是用命令行编译但要指定参数),不如本文一条#include"vcap.cpp"简单。二是该文档中没有指出对这种自己生成的form,有一个限制就是一定要注释掉#pragma package(smart_init)行,否则安装时虽可生成包文件但控件不能被装上。它举的about对话框的例子中恰好没有这一句。而用ide产生的form一般都是这一句的。 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |