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

SQL Anywhere 11.0.1 (日本語) » Ultra Light - C/C++ プログラミング » アプリケーション開発 » Windows Mobile 用 Ultra Light アプリケーションの開発

 

アプリケーションに対するクラス名の割り当て

ActiveSync で使用するアプリケーションを登録するには、ウィンドウ・クラス名を指定します。クラス名の割り当ては開発時に行うので、その方法については、アプリケーション開発ツールのマニュアルが主な情報源になります。

Microsoft Foundation Classes (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 の場合)を参照してください。