Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » UltraLite - C 及 C++ 编程 » 应用程序开发 » 开发用于 Windows Mobile 的 UltraLite 应用程序

 

为应用程序指派类名

在注册与 ActiveSync 一起使用的应用程序时,必须提供窗口类名。指派类名的工作是在开发阶段进行的,应用程序开发工具文档是关于该主题的信息的主要来源。

Microsoft 基础类 (MFC) 对话框具有一个一般类名 Dialog,系统中的所有对话框都共享该名称。本节介绍在使用 MFC 和 eMbedded Visual C++ 时,如何为应用程序指派不同的类名。

♦  使用 eMbedded Visual C++ 为 MFC 应用程序指派窗口类名
  1. 基于缺省类为对话框创建和注册自定义窗口类。

    向应用程序的启动代码中添加以下代码。这些代码必须在创建任何对话框之前执行:

    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 是应用程序的唯一类名。

  2. 确定哪个对话框是应用程序的主对话框。

    如果项目是用 [MFC 应用程序向导] 创建的,则它可能是名为 CMyAppDlg 的对话框。

  3. 查找并记录主对话框的资源 ID。

    资源 ID 是常规格式为 IDD_MYAPP_DIALOG 的常数。

  4. 确保主对话框在应用程序运行时始终处于打开状态。

    向应用程序的 InitInstance 函数中添加以下行。该行能够确保在主对话框 dlg 关闭后,应用程序也会关闭。

    m_pMainWnd = &dlg;

    有关详细信息,请参见有关 CWinThread::m_pMainWnd 的 Microsoft 文档。

    如果该对话框在应用程序打开期间不处于打开状态,则必须还更改其它对话框的窗口类。

  5. 保存所做更改。

    如果 Embedded Visual C++ 处于打开状态,则保存所做更改,然后关闭项目和工作区。

  6. 修改项目的资源文件。

    • 使用文本编辑器(如记事本)打开资源文件(其扩展名为 .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 文件。

  7. 重新打开 eMbedded Visual C++ 并装载该项目。

  8. 添加捕获同步消息的代码。

    请参见添加 ActiveSync 同步 (MFC)