当前位置: 首页 > news >正文

烟台市铁路建设管理局网站电子商务网站开发开发背景

烟台市铁路建设管理局网站,电子商务网站开发开发背景,网站设计开发团队,十种网络营销的方法WinCE系统中的控制面板和Windows系统中的控制面板原理是一样的#xff0c;里面就是包含了一些应用程序。WinCE系统的控制面板由Ctlpnl.exe#xff0c;Control.exe和一些.cpl文件组成#xff0c;其中Ctlpnl.exe和Control.exe用于控制控制面板的文件夹显示和架构#xff0c;而… WinCE系统中的控制面板和Windows系统中的控制面板原理是一样的里面就是包含了一些应用程序。WinCE系统的控制面板由Ctlpnl.exeControl.exe和一些.cpl文件组成其中Ctlpnl.exe和Control.exe用于控制控制面板的文件夹显示和架构而.cpl文件和控制面板中的实际应用程序相对应。 WinCE的控制面板中的每个应用程序都由两部分组成应用程序本身和所对应的.cpl文件。实际上.cpl文件就是一个dll在该dll中会导出CPLApplet函数该函数会处理来自控制面板的消息(CPL_INIT, CPL_DBCLK, CPL_STOP等)然后根据相应的消息来调用应用程序。 先来看一下CPlApplet函数如下 LONG CPlApplet(HWND hwndCPl, UINT msg, LPARAM lParam1, LPARAM lParam2) hwndCPl控制面板窗口的句柄 msg发给控制面应用程序的消息 lParam1消息参数1 lParam2消息参数2 该函数会根据msg参数传入的消息进行相应的处理WinCE中所支持的控制面板消息如下 CPL_INIT被首次加载的时候会收到该消息也是第一个消息用于初始化控制面板应用程序比如内存分配等。 CPL_GETCOUNT第二个被收到的消息该消息用于获得该控制面板应用程序中的组件数因为.cpl文件中可能包含多个Applet程序。 CPL_NEWINQUIRE查询组件信息如果该.cpl中包含多个组件那么lParam1表示组件号lParam2是一个指向NEWCPLINFO结构的指针其中NEWCPLINFO结构用于描述组件信息。 CPL_DBCLK用户在控制面板界面中双击某个应用时会收到该消息在该消息中执行对应的应用程序。如果包含多个组件那么lParam1表示组建号lParam2为传给应用程序的数据。 CPL_STOP关闭控制面应用程序时收到该消息用于释放资源。如果包含多个组件那么lParam1表示组件号lParam2为传给应用程序的数据。 CPL_EXIT在CPL_STOP消息之后控制面板释放该应用程序时收到该消息。 在CPlApplet中收到CPL_NEWINQUIRE消息时会初始化NEWCPLINFO结构来描述组件信息该结构定义如下 typedef struct tagNEWCPLINFO { DWORD dwSize; DWORD dwFlags; DWORD dwHelpContext; LONG lData; HICON hIcon; TCHAR szName[32]; TCHAR szInfo[64]; TCHAR szHelpFile[128]; } NEWCPLINFO; dwSize该结构的信息 dwFlags忽略 dwHelpContext忽略 lData传给组建程序的数据 hIcon显示在控制面板中的图标的句柄 szName显示在控制面板中的组件的名字 szInfo显示在控制面板中的描述信息 szHelpFile忽略 前面介绍了控制面板的基础知识下面就开始添加应用程序到WinCE控制面板中步骤如下 1. 创建一个WinCE的工程然后添加一个应用程序 首先要有一个WinCE的工程然后点击File-New-Subproject然后选择WCE Application然后可以选择Hello World应用程序。 2. 为应用程序创建CPL工程 同样点击File-New-Subproject然后选择WCE Dynamic-Link Library工程名为HelloCPL然后点击Next在Auto-generated subproject files页面中选择A Dll that exports some symbols然后点击Finish完成。 3. 添加CPlApplet函数 打开HelloCPL工程并打开HelloCPL.cpp文件添加如下头文件 #include tchar.h #include “cpl.h” 然后添加如下代码 #define lengthof(exp) ((sizeof((exp)))/sizeof((*(exp)))) HMODULE g_hModule NULL;   // Handle to the DLL. BOOL APIENTRY DllMain( HANDLE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: { g_hModule (HMODULE) hModule; } case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } // --------------------------- // The entry point to the Control Panel application. // --------------------------- extern C HelloCPL_API LONG CALLBACK CPlApplet(HWND hwndCPL, UINT message, LPARAM lParam1, LPARAM lParam2) { switch (message) { case CPL_INIT: // Perform global initializations, especially memory // allocations, here. // Return 1 for success or 0 for failure. // Control Panel does not load if failure is returned. return 1; case CPL_GETCOUNT: // The number of actions supported by this Control // Panel application. return 1; case CPL_NEWINQUIRE: // This message is sent once for each dialog box, as // determined by the value returned from CPL_GETCOUNT. // lParam1 is the 0-based index of the dialog box. // lParam2 is a pointer to the NEWCPLINFO structure. { ASSERT(0 lParam1); ASSERT(lParam2); NEWCPLINFO* lpNewCplInfo (NEWCPLINFO *) lParam2; if (lpNewCplInfo) { lpNewCplInfo-dwSize sizeof(NEWCPLINFO); lpNewCplInfo-dwFlags 0; lpNewCplInfo-dwHelpContext 0; lpNewCplInfo-lData IDI_HELLO; // The large icon for this application. Do not free this // HICON; it is freed by the Control Panel infrastructure. lpNewCplInfo-hIcon LoadIcon(g_hModule, MAKEINTRESOURCE(IDI_HELLO)); LoadString(g_hModule, IDS_APP_TITLE, lpNewCplInfo-szName, lengthof(lpNewCplInfo-szName)); LoadString(g_hModule, IDC_Hello, lpNewCplInfo-szInfo, lengthof(lpNewCplInfo-szInfo)); _tcscpy(lpNewCplInfo-szHelpFile, _T()); return 0; } return 1;  // Nonzero value means CPlApplet failed. } case CPL_DBLCLK: { // The user has double-clicked the icon for the // dialog box in lParam1 (zero-based). PROCESS_INFORMATION pi {0}; if (CreateProcess(_T(\\Windows\\Hello.exe), NULL, NULL, NULL, FALSE, 0, NULL, NULL, NULL, pi)) { CloseHandle(pi.hThread); CloseHandle(pi.hProcess); return 0; } return 1;     // CPlApplet failed. } case CPL_STOP: // Called once for each dialog box. Used for cleanup. case CPL_EXIT: // Called only once for the application. Used for cleanup. default: return 0; } return 1;  // CPlApplet failed. }  // CPlApplet 具体不做解释了相信自己看一下都能看明白。在上面的代码中处理消息CPL_NEWINQUIRE的时候加载了IDI_HELLOIDS_APP_TITLE和IDC_Hello三个资源分别是一个图标和两个字符串。为工程添加rc资源文件和resource.h头文件导入图标资源和字符串资源。资源的导入和定义比较简单所以不介绍具体步骤了。 4. 修改HelloCPL工程配置 打开HelloCPL.bib文件添加如下内容 MODULES HelloCPL.cpl  $(_FLATRELEASEDIR)\HelloCPL.cpl               NK 右击HelloCPL工程选择Properities选择General页面在Custom Variables项中添加变量变量名字为CPL值为1。 再次右击HelloCPL工程选择Properities选择C/C页面确认Additional Macro Definitions的值为$(CDEFINES) -DHelloCPL_EXPORTS。设置DLL Entry Point项为DllMain。在Include Directories项中添加路径$(_PROJECTROOT)\cesysgen\oak\inc。 5. 编译Hello应用程序和HelloCPL工程 编译开始创建的Hello应用程序和HelloCPL工程在WinCE6.0中编译完成后会自动Makeimg操作。 通过上面的步骤可以把应用程序添加到WinCE系统的控制面板中最后编译成功以后就可以下载运行了在此我添加了一个Hello的应用程序名字叫Hello application运行结果如图
http://wiki.neutronadmin.com/news/200980/

相关文章:

  • 公司开发网站建设价格网站维护怎么学
  • 成都旅游网站建设地址号卡分销系统开发
  • 如何做网站献县网站
  • 现在.net做网站的多吗设计托管网站建设
  • 网站建设的相关问题网站开发流程 百度文库
  • 电子书网站用dz还是wordpress专门做游戏攻略的网站
  • 广西网站建设价格多少那个网站是专门做渔具的
  • 网站建设 案例展示嘉兴seo网站优化
  • 网站简介 title网站建设系统源码
  • 可信网站值得做吗网络推广策划案格式模板和范文
  • 怎么自己创建网站免费aliyun怎么建网站
  • 商城网站开发业务求职网站网页设计
  • 企业网站一定要花钱吗做搜狗手机网站点击软
  • 网站成品下载wordpress打分
  • 恢复被百度k网站 关键词收录广州移动 网站建设
  • 西宁网站系统建设东莞软件设计
  • 江苏网站建设费用赣州网站开发公司
  • 企业网站系统功能设计说明wordpress第三方支付插件
  • 天津企业网站制作中小型网站建设策划
  • wordpress透明沈阳seo公司
  • 网站建设格式百度地图放到网站上
  • 网站框架是谁做知识产权教育网站建设方案
  • 制作网站公司哪里好东莞通充值
  • 东莞建站模板公司做网站合同范本
  • 网站设计分析案例网站备案要拍照大家怎么做的啊
  • 网站遭受攻击professional wordpress
  • 网站icp备案查询截图机加工如何用网站开发客户
  • 贵阳网站设计方案wordpress怎么关注站点
  • 烟台做网站打电话话术做自媒体哪个平台最好
  • 建设银行培训网站公司主页填什么