ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:390.72KB ,
资源ID:5829049      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5829049.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Windows 控制面板编程Word格式文档下载.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Windows 控制面板编程Word格式文档下载.docx

1、对于具体的描述可以参考:二、明确几个概念l控制面板管理程序:用于管理控制面板的程序,在桌面windows版本是CONTROL.EXE,在windows CE版本是CTLPNL.EXE,它们负责管理控制面板里的控制面板条目。简单的说,我们打开控制面板时,这些管理程序就在运行了。只不过我们看到的是挂上了Shell外观而已(注:这是我的猜测,还没有找到依据)。控制面板条目(Control Panel Item):在控制面板里看到的每个图标所对应的就是一个控制面板条目。控制面板应用程序(Control Panel Application):就是最终看到的CPL文件,一个控制面板应用程序可以实现几个控制

2、面板条目。三、控制面板应用程序的编写编写控制面板应用程序,就是编写dll文件,在该文件中实现控制所需要的功能。这就涉及到一个不得不说的函数,没有它就无法完成控制面板程序的实现。该函数为CPLApplet。下面就该函数的参数等知识做些介绍。函数:LONG CPLApplet(HWNDhwndCPl,UINTmsg, LPARAMlParam1, LPARAMlParam2)函数CPLApplet是控制面板应用程序(Control Panel application)的入口点,它被控制面板管理程序(control.exe或Ctlpnl.exe)自动调用,它是个回调函数(Callback),注意:C

3、PL文件一定要把函数CPLApplet导出,这样控制面板才能找到程序的入口点。当启动控制面板时,它会搜索Windows或System32或注册表的相应条目目录下的文件,并把以CPL作为扩展名的文件载入,它调用CPL文件的导出函数CPLApplet(),发送消息给该函数。所以,控制面板应用程序要处理控制面板发送过来的消息,即在函数CPLApplet中进行处理,该函数没有默认的行为。如果一个CPL文件中实现了多个控制面板程序,那么只会有一个CPLApplet函数,它负责所有的控制面板应用程序。参数说明:hwndCPl:控制面板管理程序或称为控制面板的窗口句柄,即为control.exe的窗口句柄。

4、如果控制面板应用程序或其它窗口需要传递父窗口句柄,可以使用该参数。Msg:发送到控制面板应用程序的消息,由控制面板管理程序发送。lParam1:消息参数lParam2:函数的返回值依据消息的不同而不同。应用程序要使用该函数需要包含头文件:cpl.h消息名称描述CPL_INIT控制面板应用程序收到的第一个消息,通常在此处理全局初始化和内存分配。成功返回非0,否则返回0,此时控制面板管理程序终止和该应用程序的通信,并释放相应的CPL文件。CPL_GETCOUNT该消息紧接在CPL_INIT消息之后被发送,它返回控制面板管理程序所能看到该CPL文件中所包含的控制面板组件的数目,即该CPL文件可以出现

5、在控制面板中的图标的数目。CPL_INQUIRE于CPL_GETCOUNT之后被发送,为指定的控制面板条目提供信息。CPL_NEWINQUIRE于CPL_GETCOUNT之后被发送,与消息CPL_INQUIRE完成的功能类似,只不过其实现要求TNewCPLInfo结构指针,所包含的资源不提供缓存,所以控制面板启动的较慢,一般不建议处理该消息,除非特别必要,如要根据一定的条件动态的改变控制面板条目的图标、字符串等。CPL_DBLCLK表明用户选定了一个控制面板条目,程序应该显示相应的对话框以便用户完成相应的任务。成功返回0,否则,返回非0.CPL_STOP控制面板管理程序关闭时被发送,控制面板应

6、用程序在此时处理内存释放等动作。成功处理,返回0.CPL_SELECT目前不被使用。只有Windows 95和Microsoft Windows NT 4.0之前的系统使用。CPL_STARTWPARMS该消息与CPL_DBLCLK类似,但lParam2指向LPCTSTR,该消息在shell32.dllversion 5.0(Windows 2000,Windows Millennium Edition (Windows Me)及以后版本有效CPL_EXIT于CPL_STOP消息之后被发送,这是控制面板应用程序在释放资源的最后机会。成功处理返回0.CPL_INQUIRE:lParam1是以0为

7、起点的整数,它是该CPL文件中所包含的控制面板条目的索引,lParam2参数要求一个CPLINFO结构的指针,用来填充所需的图标、字符串等信息。如果成功处理了该消息,应该返回0。CPL_NEWINQUIRE:该消息与CPL_INQUIRE都是CPL_GETCOUNT之后被发送的消息,但并没有明确的先后顺序。所以程序里不要依赖它们的顺序来处理不同的事务。编写控制面板应用程序的步骤:1选择适当的开发工具(如:Visual Studio 2008),建立DLL项目;2导出函数CPLApplet;3在函数CPLApplet的消息处理过程中完成你需要的工作;一个简单的例子开发工具:Microsoft V

8、isual Studio 2008操作系统:Windows XP SP2步骤:新建Win32 Project,工程名为CPLTest;应用程序类型选择DLL(CPL文件本质上是DLL);在项目中新增或导入一个图标文件和两个字符串资源,用于在控制面板管理程序中显示图标和提示;在Resource Files上右键选择AddResource,然后选择Icon或String Table以下为resource.h的部分内容#defineIDI_ICON1101 /图标标识IDS_STRING102102 /字符串tomIDS_STRING103103/字符串cui4在dllmain.cpp文件中增加函数

9、的导出CPLApplet;externC_declspec(dllexport)LONGAPIENTRYCPlApplet(HWNDhwndCPL,UINTuMsg,LPARAMlParam1,LPARAMlParam2);原则上可以按照上面的方式导出就可以了,但是请注意CPlApplet的调用方式是APIENTRY,通过这样方式导出的函数会被改名,通过多次实验也不可行。你可能会上去掉APIENTRY,但这样编出来的CPL文件无法运行,查阅了相关文档,在Windows Mobile Version 5.0 SDK的文档里指明了该函数的调用方式,windows CE 5.0和Windows Sh

10、ell and Controls没有指明这种调用方式。所以,只有加上APIENTRY。现在的问题是如何导出该函数?看来要通过DEF文件了,如果你的项目里没有产生DEF文件,可以通过Project-Properties-Linker-Module Definition File来指定或自己用记事本建立这样的文件,输入如下内容。; CPLTest.def : Declares the module parameters for the DLL.LIBRARYCPLTestEXPORTS Explicit exports can go hereCPlApplet5在dllmain.cpp文件中增加函

11、数CPLApplet的消息处理函数来完成指定的功能;在dllmain.cpp中包含以上两个头文件#include resource.h /资源标识#include /CPLApplet函数要求的头文件我的例子完成显示一个MessageBox的功能。dllmain.cpp的完整代码:/ dllmain.cpp : Defines the entry point for the DLL application.#includestdafx.hlData= 0;idIcon=IDI_ICON1;idNameIDS_STRING102;idInfoIDS_STRING103;CPL_DBLCLK:/

12、application icon double-clickedMessageBox(NULL,TEXT(Tom66),Cuei666MB_OK);CPL_STOP:/ sent once per application beforeCPL_EXIT:/ sent once before FreeLibrary is calleddefault:0;6编译Project-Output File修改输出文件的后缀名为CPL,也可以不修改,到最后把dll改为cpl也可以的。四、控制面板应用程序的安装与运行将cpl文件拷贝到Windows(Windows CE)或Windows/system32(桌面

13、版本Windows),可以在这里双击运行,也可以打开控制面板就可以看到该CPL文件所包含的控制面板条目,图标和文件就是你在CPLApplet里指定的,双击也可运行。2 在命令行下运行rundll32 shell32.dll,Control_RunDLL CPLTest.cpl(CPL文件名)1(数字指定运行第几个控制面板条目,一个CPL文件可以包含几个控制面板条目)。在windows CE下,在命令行输入ctlpnl.exe /windows/cplmain.cpl,5,与桌面版本有些差异。3 在windows的注册表HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Control Panel/Cpls下新建字符串,并指定cpl所在的完整路径,然后就可以在控制面板里看到新增加的控制面板条目。通过写注册表的方式,是一些应用软件惯用的方式,安装时可以通过InstallShield等安装制作工具将其添加到注册表,卸载时,删除注册表中相关的项。4 通过拷贝的方式,直接删除相应的CPL文件就可以了。至于有没有更好的方式,我还没有发现。

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2