C++辅导-用VC6.0制作控制面板应用程序.docx

上传人:s9****2 文档编号:544699078 上传时间:2023-01-24 格式:DOCX 页数:6 大小:14.49KB
返回 下载 相关 举报
C++辅导-用VC6.0制作控制面板应用程序.docx_第1页
第1页 / 共6页
C++辅导-用VC6.0制作控制面板应用程序.docx_第2页
第2页 / 共6页
C++辅导-用VC6.0制作控制面板应用程序.docx_第3页
第3页 / 共6页
C++辅导-用VC6.0制作控制面板应用程序.docx_第4页
第4页 / 共6页
C++辅导-用VC6.0制作控制面板应用程序.docx_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《C++辅导-用VC6.0制作控制面板应用程序.docx》由会员分享,可在线阅读,更多相关《C++辅导-用VC6.0制作控制面板应用程序.docx(6页珍藏版)》请在金锄头文库上搜索。

1、 C+辅导:用VC6.0制作控制面板应用程序在Windows的系统名目下可以找到掌握面板应用程序,它们是一些扩展名为cpl的dll,通常用来供应配置效劳,如配置网络硬件和软件用的ncpa.cpl,配置桌面用的desk.cpl等,它们的父窗口都是桌面。运行这类程序的方法许多:双击掌握面板中的图标、双击系统名目下的cpl文件,或者使用如下DOS命令:rundll32 shell32.dll,ControlRunDLL n或者control n其中n用于指定运行哪一个小程序(一个cpl文件中可包含多个小程序),若不带此参数则相当于0,即运行第一个小程序。例如:Rundll32 shell32.dll

2、,ControlRunDLL main.cpl n若不带n参数,则运行鼠标设置;1则运行键盘设置;2则运行打印机设置;3则显示系统字体。ControlRunDLL是shell32.dll中定义的一个函数,大小写敏感,用于启动掌握面板。通过掌握面板应用程序来供应配置效劳是一种很好的方法,那么如何设计这种应用程序呢?下面以Visual C6.0为例进展介绍。二、开发掌握面板应用程序若盼望一个文件传输程序启动后自动连接到某一个站点,就需要为其供应一些缺省值,如:效劳器名、用户名、口令等。下面就开发一个掌握面板应用程序来供应这些缺省值,详细步骤为:1创立一个“MFC AppWizard (dll)”类

3、型的工程,命名为:MyCplApp,选择“Regular DLL With MFC statically linked”,使它的运行不依靠于其它任何dll。2选择Project选单下的Settings项或按AltF7,在Link页中将输出文件名改为:Mycplapp.cpl,在Debug页中将“Executable for debug session”改为:Control.exe,以便直接用掌握面板运行。对于Win9x,为System,对于WinNT,为System32。3从MSDN Library Visual Studio 6.0光盘的Samples名目中找到Ctrlpan.cpp 和Ct

4、rlpan.h 文件,并把它们加到工程中。4创立如图1所示对话框,为:IDDMYDIALOG,用Class Wizard创立一个CMyDialog类。为每个控件创立成员变量,如“FTP效劳器”对应的成员变量定义为:CString mstrServer。5引入或新建一个ICON,为:IDIMYICON,用于掌握面板中显示。6从CControlPanel类(在Ctrlpan.h中定义)继承一个新类CMyPanel,修改MyPanel.h文件:include Ctrlpan.hclass CMyPanel : public CControlPanel public:virtual LONG OnIn

5、quire(UINT uAppNum, NEWCPLINFO pInfo);virtual LONG OnDblclk(HWND hwndCPl, UINT uAppNum, LONG lData);/两个虚拟函数由读者参加7在MyPanel.cpp中实现MyPanel.h中定义的两个虚拟函数:LONG CMyPanel:OnInquire(UINT uAppNum, NEWCPLINFO pInfo) /此函数在掌握面板翻开时被调用,用于猎取资源信息,即填充pInfo构造pInfodwSize = sizeof(NEWCPLINFO);/指定构造长度pInfodwFlags = 0;/此成员

6、忽视pInfodwHelpContext = 0; /此成员忽视pInfolData = 0;/小程序传递给应用程序的LONG类型的值pInfohIcon= :LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDIMYICON);/加载图标strcpy(pInfoszName, FTP设置);/设置名称strcpy(pInfoszInfo, 设置FTP缺省信息);/设置描述strcpy(pInfoszHelpFile, );/此成员忽视return 0; /不发送CPLINQUIRE消息LONG CMyPanel:OnDblclk(HWND hw

7、ndCPl, UINT uAppNum, LONG lData) /双击掌握面板中的图标时,此函数被调用,用于读取或保存设置信息。CMyDialog dlg(CWnd:FromHandle(hwndCPl); /用父窗口句柄初始化对话框HKEY hcpl;/主键,用于读写注册表if (RegOpenKeyEx(HKEYCURRENTUSER,Control PanelFTPSet,0,KEYQUERYVALUE, hcpl) = ERRORSUCCESS) DWORD dwType = 1;/字符串类型REGSZDWORD dwSize;/字符串长度RegQueryValueEx(hcpl,F

8、TPServer,NULL,dwType,(BYTE)(LPCTSTR)dlg.mstrServer,dwSize);RegCloseKey(hcpl);/查询注册表,读取以前的设置信息,上面仅以mstrServer为例。RegCloseKey(hcpl);if(dlg.DoModal()!=IDOK) return 0;/执行对话框,若用户点击“取消”则返回DWORD dwDisp;/用于接收创立主键的返回值if (RegCreateKeyEx(HKEYCURRENTUSER,Control PanelFTPSet,0, ,REGOPTIONNONVOLATILE, KEYWRITE, NU

9、LL,hcpl, dwDisp) = ERRORSUCCESS) RegSetValueEx(hcpl,FTPServer,0,REGSZ,(BYTE)(LPCTSTR)dlg.mstrServer, dlg.mstrServer.GetLength();RegCloseKey(hcpl);/将对话框中设置保存到注册表return 0;8修改应用程序头文件MyCplApp.h,参加下面黑体局部代码:include MyPanel.hinclude MyDialog.hclass CMyCplAppApp : public CWinApp public:CMyCplAppApp();DECLAREMESSAGEMAP()CMyPanel mControl;9修改模块定义文件MyCplApp.DEF,输出CPlApplet函数:LIBRARY MYCPLAPPDESCRIPTION FTP设置EXPORTSCPlApplet10编译运行按CtrlF5编译运行后,掌握面板会翻开,里面多了一个图标,双击它就弹出MyDialog对话框,输入配置信息后,点击“确定”退出。全部这些信息就保存到注册表的HKEYCURRENTUSERControl PanelFTPSet键下,供文件传输程序读取。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号