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

SQL Anywhere 12.0.1 » Ultra Light C/C++ プログラミング » アプリケーション開発 » Windows Mobile 向け Ultra Light アプリケーション開発

 

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

 ♦ MFC アプリケーションのウィンドウクラス名の割り当て

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

Microsoft Foundation Classes (MFC) ダイアログボックスには、汎用クラス名である Dialog が指定され、システム内のすべてのダイアログで共有されます。この項では、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 アプリケーションウィザードを使ってプロジェクトを作成した場合、ダイアログ名は通常 MyAppDlg です。

  3. メインダイアログのリソース ID を調べて記録しておきます。

    リソース ID は、IDD_MYAPP_DIALOG のような、一般形式の定数です。

  4. アプリケーションの実行中は常にメインダイアログが開かれていることを確認します。

    アプリケーションの InitInstance 関数に、次の行を追加します。これにより、メインダイアログ dlg を閉じたときにアプリケーションも確実に閉じるようになります。

    m_pMainWnd = &dlg;

    詳細については、CWinThread::m_pMainWnd に関する Microsoft のマニュアルを参照してください。

    アプリケーションの実行中にダイアログが閉じられてしまう場合には、他のダイアログのウィンドウクラスも変更してください。

  5. 変更内容を保存します。

  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. 同期メッセージを取得するコードを追加します。

 参照