在注册与 ActiveSync 一起使用的应用程序时,必须提供窗口类名。指派类名的工作是在开发阶段进行的,应用程序开发工具文档是关于该主题的信息的主要来源。
Microsoft 基础类 (MFC) 对话框具有一个一般类名 Dialog,系统中的所有对话框都共享该名称。本节介绍在使用 MFC 和 eMbedded Visual C++ 时,如何为应用程序指派不同的类名。
基于缺省类为对话框创建和注册自定义窗口类。
向应用程序的启动代码中添加以下代码。这些代码必须在创建任何对话框之前执行:
WNDCLASS wc; if( ! GetClassInfo( NULL, L"Dialog", &wc ) ) { AfxMessageBox( L"Error getting class info" ); } wc.lpszClassName = L"MY_APP_CLASS"; if( ! AfxRegisterClass( &wc ) ) { AfxMessageBox( L"Error registering class" ); } |
其中 MY_APP_CLASS 是应用程序的唯一类名。
确定哪个对话框是应用程序的主对话框。
如果项目是用 [MFC 应用程序向导] 创建的,则它可能是名为 CMyAppDlg 的对话框。
查找并记录主对话框的资源 ID。
资源 ID 是常规格式为 IDD_MYAPP_DIALOG 的常数。
确保主对话框在应用程序运行时始终处于打开状态。
向应用程序的 InitInstance 函数中添加以下行。该行能够确保在主对话框 dlg 关闭后,应用程序也会关闭。
m_pMainWnd = &dlg; |
有关详细信息,请参见有关 CWinThread::m_pMainWnd 的 Microsoft 文档。
如果该对话框在应用程序打开期间不处于打开状态,则必须还更改其它对话框的窗口类。
保存所做更改。
如果 Embedded Visual C++ 处于打开状态,则保存所做更改,然后关闭项目和工作区。
修改项目的资源文件。
使用文本编辑器(如记事本)打开资源文件(其扩展名为 .rc)。
找到主对话框的资源 ID。
将主对话框的定义更改为使用新窗口类,如下例所示。应进行的唯一 更改是添加 CLASS 行:
IDD_MYAPP_DIALOG DIALOG DISCARDABLE 0, 0, 139, 103 STYLE WS_POPUP | WS_VISIBLE | WS_CAPTION EXSTYLE WS_EX_APPWINDOW | WS_EX_CAPTIONOKBTN CAPTION "MyApp" FONT 8, "System" CLASS "MY_APP_CLASS" BEGIN LTEXT "TODO: Place dialog controls here.",IDC_STATIC,13,33,112,17 END |
其中 MY_APP_CLASS 是以前使用的窗口类的名称。
保存 .rc 文件。
重新打开 eMbedded Visual C++ 并装载该项目。
添加捕获同步消息的代码。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |