メニューとリソース : コンテナーの変更点
ここでは、ビジュアル編集のコンテナー アプリケーションで、メニューやその他のリソースに加えなければならない変更について説明します。
コンテナー アプリケーションでは、2 つの種類の変更が必要。OLE のビジュアル編集とインプレース アクティブ化に使用される新しいリソースの追加をサポートする既存のリソースを変更します。 アプリケーション ウィザードを使ってコンテナー アプリケーションを作成すると、これらの作業は自動的に行われますが、さらにカスタマイズが必要な場合もあります。
アプリケーション ウィザードを使わない場合は、サンプル アプリケーション OCLIENT のリソース スクリプト OCLIENT.RC を参考にして、変更の実装方法を確認してください。 MFC OLE サンプルの OCLIENT も参照してください。
ここでは、次のトピックについて説明します。
コンテナー メニューの変更点
サーバー アプリケーションのアクセラレータ テーブルの変更点
コンテナー アプリケーションのストリング テーブルの変更点
コンテナー メニューの変更点
[編集] メニューに次の項目を追加する必要があります。
項目 |
目的 |
---|---|
[新規オブジェクトの挿入] |
[オブジェクトの挿入] ダイアログ ボックスを開いてリンク オブジェクトまたは埋め込みアイテムをドキュメントに挿入します。 |
[リンクの貼り付け] |
クリップボード上のオブジェクトに対するリンクをドキュメントに貼り付けます。 |
[主 Verb] |
選択されたオブジェクトの主動詞を呼び出します。 このメニュー項目の文字列は、選択されたオブジェクトの主動詞に応じて変化します。 |
リンク |
[リンク] ダイアログ ボックスを開き、既存のリンク オブジェクトを変更します。 |
上の表に示した変更内容のほか、ソース ファイルに AFXOLECL.RC をインクルードします。AFXOLECL.RC は、MFC ライブラリを利用するために必要です。 上に示したメニュー項目のうち、[新規オブジェクトの挿入] だけは必ず追加してください。 上の表以外のメニュー項目も追加できますが、この表のメニュー項目が最も一般的です。
クライアント アイテムの埋め込み先編集の有効化をサポートするには、コンテナー アプリケーションに新しいメニューを 1 つ追加する必要があります。 このメニューは、通常ファイルが開いているときに使うメニューと同じ [ファイル] メニューと [ウィンドウ] ポップアップ メニューで構成され、この 2 つのメニューを 2 つの区切り線で区切ります。 この区切り線は、埋め込み先編集モードで起動されたときにサーバー (コンポーネント) アイテム (またはアプリケーション) のメニューが表示される位置を示します。 このメニューのマージのテクニックの詳細についてを参照してくださいメニューとリソース:メニューのマージ。
コンテナー アプリケーションのアクセラレータ テーブルの変更点
コンテナー アプリケーションで埋め込み先編集の有効化をサポートするときは、アクセラレータ テーブルのリソースに多少の変更を加える必要があります。 まず、ユーザーが Esc キーで埋め込み先編集モードをキャンセルできるようにします。 メイン アクセラレータ テーブルに次のエントリを追加します。
[ID] |
キー |
次のように入力します。 |
---|---|---|
ID_CANCEL_INPLACE |
VK_ESCAPE |
VIRTKEY |
次に、埋め込み先編集用メニュー リソースに対応する新しいアクセラレータ テーブルを作成します。 このテーブルには、上の VK_ESCAPE エントリに加えて、[ファイル] メニューと [ウィンドウ] メニューに対するエントリが含まれます。 次のアクセラレータ テーブルは、MFC サンプル CONTAINER で埋め込み先編集の有効化用に作成されるものです。
[ID] |
キー |
次のように入力します。 |
---|---|---|
ID_FILE_NEW |
Ctrl + N |
VIRTKEY |
ID_FILE_OPEN |
Ctrl + O |
VIRTKEY |
ID_FILE_SAVE |
Ctrl + S |
VIRTKEY |
ID_FILE_PRINT |
Ctrl + P |
VIRTKEY |
ID_NEXT_PANE |
VK_F6 |
VIRTKEY |
ID_PREV_PANE |
Shift + VK_F6 |
VIRTKEY |
ID_CANCEL_INPLACE |
VK_ESCAPE |
VIRTKEY |
コンテナー アプリケーションのストリング テーブルの変更点
コンテナー アプリケーションのストリング テーブルの変更点の大半は、「コンテナー メニューの変更点」で説明されている追加メニュー項目に対応するものです。 各メニュー項目が表示されるときにステータス バーに表示されるテキストを指定します。 例として、アプリケーション ウィザードが生成するストリング テーブルのエントリを次に示します。
[ID] |
文字列 |
---|---|
IDP_OLE_INIT_FAILED |
OLE の初期化に失敗しました。 OLE ライブラリが正しいバージョンのものであることを確認してください。 |
IDP_FAILED_TO_CREATE |
オブジェクトの作成に失敗しました。 オブジェクトがシステムのレジストリに登録されていることを確認してください。 |