社区
VCL组件使用和开发
帖子详情
如何用BCB开发控制面板程序?
merinda
2003-07-04 09:21:38
如何用BCB开发控制面板程序?请高手指点!
...全文
227
4
打赏
收藏
如何用BCB开发控制面板程序?
如何用BCB开发控制面板程序?请高手指点!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Behard
2003-07-04
打赏
举报
回复
看看《深度历险》就很清楚了
gaoxumei
2003-07-04
打赏
举报
回复
看看《C++Builder深度历险》就很清楚了
he_rong
2003-07-04
打赏
举报
回复
前不久,Inprise公司(原Borland公司)正式公布了Delphi 5.0版,其开发向导中支持了“控制面板程序(CPL)”框架的生成,利用它可以快速、方便地开发CPL程序。那么是否能在现有的Borland C++ Builder 4.0中开发CPL程序呢?
CPL程序是动态链接库(DLL)的一种变形,只不过扩展名为.cpl、入口函数为CPlApplet()而不是DllEntryPoint()罢了(并不是不要DllEntryPoint(),不然不能编译)。我们只需在BCB4.0中选择“File|New...”打开开发向导,选择“DLL”生成一个DLL框架,并在其中加入一个函CPlApplet()就可以了。为了快速地说明问题,笔者先给出一个最简单的例子程序,然后再来解说。
#include <vcl.h>
#include <cpl.h>
#include <cplext.h>
#pragma hdrstop USERES("my.res");//这是我加入的资源文件,其中有一个图标
extern"C" __declspec(dllexport) long CALLBACK __stdcall CPlApplet(HWND hwndCPL,UINT uMsg,LPARAM lParam1,LPARAM lParam2);
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
return 1;
}
long CALLBACK __declspec(dllexport) __stdcall CPlApplet(HWND hwndCPL,UINT uMsg,LPARAM lParam1,LPARAM lParam2)
{
LPNEWCPLINFO mycpl;//LPNEWCPLINFO结构可在CPL.H头文件中查看
long result=0;
switch (uMsg)//判断传来的信息
{
case CPL_INIT:// 第一个信息,在控制面板调入时产生
result=1;
break;
case CPL_GETCOUNT://第二个信息,在控制面板调入时产生
result=1;
break;
case CPL_INQUIRE://第三个信息,当控制面板查询时产生
result=0;
break;
case CPL_NEWINQUIRE://第三个信息,当控制面板查询时产生
mycpl=LPNEWCPLINFO (lParam2);// 将lParam2中的指针传给mycpl
mycpl->dwSize=sizeof(NEWCPLINFO);
mycpl->dwFlags=0;//标志变量 一般设为0
mycpl->dwHelpContext=0;//帮助句柄一般设为0
mycpl->lData=0;
mycpl->hIcon=(HICON)LoadIcon(HInstance,"MyIcon");
mycpl->szHelpFile[0]='\0';//帮助文件
StrCopy(mycpl->szName,"BCB控制面板演示程序");//在图标下显示的说明文字
StrCopy(mycpl->szInfo,"用BCB开发自己的控制面板程序");// 在控制面板状态栏中显示的说明信息
result=0;
break;
case CPL_DBLCLK://当图标被双击时
ShowMessage("这是一个CPL试验程序");
result=0;
break;
case CPL_STOP://当用户关闭自已的程序时产生
result=1;
break;
case CPL_EXIT:// 当控制面板关闭时产生,系统使用FreeLibrary()释放
result=0;
break;
default:
break;
}
return result;
}
程序解说 CPL程序的运行流程是基于发送到程序的一系列消息。
当用户打开“控制面板”的时候,系统将遍历System目录下的所有CPL程序,并给它们传送CPL—INT消息。这时,CPL程序就可以做一些初始化工作,然后返回非零值,如果返零,程序将被终止。如果CPL—INT消息处理完成后,CPL程序将接收到CPL—GETCOUNT消息,此时程序必须返回对话框的数目,一般为1。然后,程序又将收到CPL—NEWINQUIRE消息,此时系统需要CPL程序提供有关信息,如图标、说明文字、帮助文件等,程序必须填充lParam2这个指针指向的信息结构,然后返回0。到这里,控制面板就完成了初始化,显示出各个图标。如果用户双击了某个图标后,这个图标所代表的CPL程序将接收到一个CPL—DBCLICK消息。这时,CPL程序可以显示出对话界面,进行有关操作。当用户完成操作、关闭程序时,必须返回0。当用户关闭“控制面板”,此时CPL程序将接收到CPL—STOP消息,这时就要释放内存资源,做好善后工作,然后返回1。 最后CPL程序将接收到最后一个消息CPL—EXIT,系统将删除各个窗口,并使用FreeLibrary()函数将CPL程序从系统中删除,完成整个流程。一般情况下,我们只需要对CPL—NEWINQUIRE和CPL—DBCLICK这两个消息进行处理,其它的消息只要返回默认值就够了。
大家只要编译这个CPL项目,并将结果拷贝到Windows\System目录下,然后打开“控制面板”就可以看到成果了。双击图标,程序将弹出一个信息框:“这是一个CPL试验程序!"。这样一个CPL程序就完成了。
如果你想加入更多的功能,只需将CPL—DBCLICK消息进行处理,比如可以显示一个窗口进行交互操作。具体的方法与在DLL中加入窗口的方法相同,因为CPL程序本身就是基于DLL框架制作出来的。下图是笔者做的一个交互窗口:最后,告诉读者一点技巧:想要编译器输出.cpl文件,可在Project|Options...|Application|output settings中将输出扩展名dll改为cpl就行了。将CPL程序拷入Windows\System\目录下后不必打开“控制面板”,直接双击文件就可以打开这个程序了。而在其它目录下是没有作用的。
he_rong
2003-07-04
打赏
举报
回复
前不久,Inprise公司(原Borland公司)正式公布了Delphi 5.0版,其开发向导中支持了“控制面板程序(CPL)”框架的生成,利用它可以快速、方便地开发CPL程序。那么是否能在现有的Borland C++ Builder 4.0中开发CPL程序呢? CPL程序是动态链接库(DLL)的一种变形,只不过扩展名为.cpl、入口函数为CPlApplet()而不是DllEntryPoint()罢了(并不是不要DllEntryPoint(),不然不能编译)。我们只需在BCB4.0中选择“File|New...”打开开发向导,选择“DLL”生成一个DLL框架,并在其中加入一个函数CPlApplet()就可以了。为了快速地说明问题,笔者先给出一个最简单的例子程序,然后再来解说。 #include <vcl.h> #include <cpl.h> #include <cplext.h> #pragma hdrstop USERES("my.res");//这是我加入的资源文件,其中有一个图标 extern"C" __declspec(dllexport) long CALLBACK __stdcall CPlApplet(HWND hwndCPL,UINT uMsg,LPARAM lParam1,LPARAM lParam2); int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) { return 1; } long CALLBACK __declspec(dllexport) __stdcall CPlApplet(HWND hwndCPL,UINT uMsg,LPARAM lParam1,LPARAM lParam2) { LPNEWCPLINFO mycpl;//LPNEWCPLINFO结构可在CPL.H头文件中查看 long result=0; switch (uMsg)//判断传来的信息 { case CPL_INIT:// 第一个信息,在控制面板调入时产生 result=1; break; case CPL_GETCOUNT://第二个信息,在控制面板调入时产生 result=1; break; case CPL_INQUIRE://第三个信息,当控制面板查询时产生 result=0; break; case CPL_NEWINQUIRE://第三个信息,当控制面板查询时产生 mycpl=LPNEWCPLINFO (lParam2);// 将lParam2中的指针传给mycpl mycpl->dwSize=sizeof(NEWCPLINFO); mycpl->dwFlags=0;//标志变量 一般设为0 mycpl->dwHelpContext=0;//帮助句柄一般设为0 mycpl->lData=0; mycpl->hIcon=(HICON)LoadIcon(HInstance,"MyIcon"); mycpl->szHelpFile[0]='\0';//帮助文件 StrCopy(mycpl->szName,"BCB控制面板演示程序");//在图标下显示的说明文字 StrCopy(mycpl->szInfo,"用BCB开发自己的控制面板程序");// 在控制面板状态栏中显示的说明信息 result=0; break; case CPL_DBLCLK://当图标被双击时 ShowMessage("这是一个CPL试验程序"); result=0; break; case CPL_STOP://当用户关闭自已的程序时产生 result=1; break; case CPL_EXIT:// 当控制面板关闭时产生,系统使用FreeLibrary()释放 result=0; break; default: break; } return result; } 程序解说 CPL程序的运行流程是基于发送到程序的一系列消息。 当用户打开“控制面板”的时候,系统将遍历System目录下的所有CPL程序,并给它们传送CPL—INT消息。这时,CPL程序就可以做一些初始化工作,然后返回非零值,如果返零,程序将被终止。如果CPL—INT消息处理完成后,CPL程序将接收到CPL—GETCOUNT消息,此时程序必须返回对话框的数目,一般为1。然后,程序又将收到CPL—NEWINQUIRE消息,此时系统需要CPL程序提供有关信息,如图标、说明文字、帮助文件等,程序必须填充lParam2这个指针指向的信息结构,然后返回0。到这里,控制面板就完成了初始化,显示出各个图标。如果用户双击了某个图标后,这个图标所代表的CPL程序将接收到一个CPL—DBCLICK消息。这时,CPL程序可以显示出对话界面,进行有关操作。当用户完成操作、关闭程序时,必须返回0。当用户关闭“控制面板”,此时CPL程序将接收到CPL—STOP消息,这时就要释放内存资源,做好善后工作,然后返回1。 最后CPL程序将接收到最后一个消息CPL—EXIT,系统将删除各个窗口,并使用FreeLibrary()函数将CPL程序从系统中删除,完成整个流程。一般情况下,我们只需要对CPL—NEWINQUIRE和CPL—DBCLICK这两个消息进行处理,其它的消息只要返回默认值就够了。 大家只要编译这个CPL项目,并将结果拷贝到Windows\System目录下,然后打开“控制面板”就可以看到成果了。双击图标,程序将弹出一个信息框:“这是一个CPL试验程序!"。这样一个CPL程序就完成了。 如果你想加入更多的功能,只需将CPL—DBCLICK消息进行处理,比如可以显示一个窗口进行交互操作。具体的方法与在DLL中加入窗口的方法相同,因为CPL程序本身就是基于DLL框架制作出来的。下图是笔者做的一个交互窗口:最后,告诉读者一点技巧:想要编译器输出.cpl文件,可在Project|Options...|Application|output settings中将输出扩展名dll改为cpl就行了。将CPL程序拷入Windows\System\目录下后不必打开“控制面板”,直接双击文件就可以打开这个程序了。而在其它目录下是没有作用的。
BCB
MSComm通信
程序
在本主题中,"
BCB
MSComm通信
程序
"指的是使用
BCB
作为
开发
平台,通过MSComm控件进行串口通信的示例
程序
。MSComm是Microsoft为Windows应用
程序
设计的一个通信控件,它提供了串行通信的基本功能,适用于简单的串口通信...
无线连接
开发
控件 for
bcb
6
总的来说,“无线连接
开发
控件 for
BCB
6”为
开发
者提供了一个强大的工具,使得构建具有无线连接功能的
BCB
6应用
程序
变得简单且高效。通过熟练掌握这些控件,
开发
者可以创建出满足现代需求的应用,无论是家庭自动化、...
BCB
制作的视频捕获
程序
【
BCB
制作的视频捕获
程序
】是一种使用 Borland C++ Builder(简称
BCB
)
开发
的软件应用,它主要用于从摄像头或视频输入设备捕获实时视频流。
BCB
是一个集成
开发
环境(IDE),它提供了面向对象的C++编程工具,使得...
bcb
6.0使用png插件
在编程领域,Borland C++ Builder 6.0(简称
BCB
6.0)是一款深受
开发
者喜爱的集成
开发
环境(IDE),主要用于构建Windows应用
程序
。这个标题“
bcb
6.0使用png插件”表明我们将讨论如何在
BCB
6.0中集成并使用PNG图像...
BCB
ACTIVE播放器
在描述中提到的“
BCB
ACTIVE播放器”是一款基于
BCB
开发
的多媒体播放器软件,它利用了
BCB
的组件化特性,实现了音频和视频的播放功能。 1. **
BCB
组件库**:
BCB
的核心之一就是VCL库,它包含了大量的预先编写好的图形...
VCL组件使用和开发
604
社区成员
13,457
社区内容
发帖
与我相关
我的任务
VCL组件使用和开发
C++ Builder VCL组件使用和开发
复制链接
扫一扫
分享
社区描述
C++ Builder VCL组件使用和开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章