次の方法で共有


方法 : ActiveX コントロールをダイアログ リソースでホストする

更新 : 2007 年 11 月

Visual Studio を使用して、デバイス用の ActiveX コントロールをデザインする場合、いくつかの追加の手順が発生します。リソース エディタは、デザイン時の編集対象となるコントロールが、それを操作するためのデスクトップ コンピュータに登録されることを前提として設計されています。しかし、デバイス用のコントロールをデスクトップ コンピュータに登録することはできません。次の手順は、デザイン時にそれに代わる手段を提供します。次の手順は、ActiveX コントロール プロジェクトとホスト プロジェクトが既に存在すること、および ActiveX コントロールがダイアログ ボックスでホストされていることを前提としています。

Aa985040.alert_note(ja-jp,VS.90).gifメモ :

お使いのマシンで、Visual Studio ユーザー インターフェイスの一部の要素の名前や場所が、次の手順とは異なる場合があります。これらの要素は、使用している Visual Studio のエディションや独自の設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。

ダイアログ エディタを使用して ActiveX コントロールを追加するには

  1. ダイアログ エディタで、ホスト プロジェクトのダイアログ ボックスを開きます。

  2. ツールボックスから、ダイアログ ボックスにカスタム コントロールをドラッグします。

  3. ActiveX コントロールをどのように表示するかを考慮しながら、ダイアログ ボックスにカスタム コントロールを配置し、サイズを調整します。

  4. カスタム コントロールを右クリックし、[プロパティ] をクリックします。

  5. [クラス] プロパティに、ActiveX コントロールの GUID を貼り付けます。中かっこ ({…}) を含めて入力してください。

  6. ソリューション エクスプローラで、Project Name.RC2 ファイルを右クリックし、[コードの表示] をクリックします。

  7. [手動で編集されたりソースをここに追加します] セクションに、次のコードを追加します。カスタム コントロールを正しく表示するためには、DLGINIT セクションが必要です。実際の DLGINIT セクションの内容は使用されません。<project name> の部分は、該当するプロジェクトの名前に置き換えます。

    IDD_<project name>_DIALOG DLGINIT BEGIN IDC_CUSTOM1, 0x376, 22, 0 0x0000, 0x0000, 0x0800, 0x0000, 0x094d, 0x0000, 0x043d, 0x0000, 0x0013, 0xcdcd, 0xcdcd, 0
    
  8. ホスト プロジェクトをビルドして実行します。ActiveX コントロールを対象のデバイスに配置して登録します。

別の方法で ActiveX コントロールをホストするには

  1. アプリケーション内で AtlAxWinInit を呼び出して、AtlAxWin80 ウィンドウ クラスを登録します。

    ATL アプリケーションでは、この処理がモジュールの初期化コードで実行されます。Win32 アプリケーションの場合、この関数を WinMain 関数で呼び出す必要があります。MFC アプリケーションの場合は、次の手順に従ってください。

    1. ソリューション エクスプローラでプロジェクト ノードを右クリックし、[追加] をポイントし、[クラス] をクリックします。

    2. [スマート デバイス] の [MFC に ATL サポートを追加] をクリックします。

    3. ホスト アプリケーション クラスの InitInstance メソッドの先頭に、AtlAxWinInit 呼び出しを追加します。

  2. ダイアログ リソース (ATL ダイアログ、複合コントロール、MFC ダイアログなど) で、次の作業を行います。

    1. ツールボックスからカスタム コントロールをドラッグします。

    2. ウィンドウ クラス プロパティを AtlAxWin80 に設定します。

    3. キャプションには、中かっこで囲んだ GUID または progID を設定します。

  3. MFC の場合は、リンク入力として別途 atl.lib を追加します。

  4. MFC の場合は、[配置] の [追加ファイル] オプションに次の行を追加します。ダイナミック リンク ライブラリの場合は、これらの行があらかじめ存在しますが、MFC のスタティック リンク ライブラリの場合は、別途追加する必要があります。

    msvcr80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\$(ProjectName)|0
    atl80.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\$(ProjectName)|0
    msvcr80d.dll|$(BINDIR)\$(INSTRUCTIONSET)\|%CSIDL_PROGRAM_FILES%\$(ProjectName)|0
    

参照

その他の技術情報

Visual C++ を使用したデバイスのプログラミング