0

OLEを使用してExcelをロードしているSDIがあります。これにツールバーを追加して、非常に目立つ明確な「インポート」ボタン(およびその他のいくつか)を使用できるようにします。追加したツールバーMFCはすべて非表示になるか、Excelがアクティブになるとインターフェイスから削除されます。Excel Oleアイテムがアクティブになったときに、ツールバーをアップしてインターフェイス上に維持する方法はありますか?

FloatControlBarExcel OLEアイテムが初期化された後に呼び出しを試みましたが、効果がありませんでした。メニュー(そのままで正常に動作する)をツールバーにねじることを考えましたが、左側にドッキングする必要があり(要件)、コマンドの大きくて目に見えるグラフィック描写が必要です...そして私はしていませんそれを行う方法を見つけました。classはグラフィカルなメニュー項目を許可しますが、私はmenuコマンド自体を(メッセージテーブルでCMenu取得する以外に)多くのことを行う方法を見つけていません。commandid

4

1 に答える 1

1

私は MFC にはあまり詳しくありませんが、COM/OLE を介して Microsoft オフィス アプリとやり取りした経験が少しあります。私の理解が正しければ、Excel ドキュメントをアプリケーションにロードし、OLE ウィンドウに表示していると思いますか? Excel のメニューとボタンはアプリ内に表示されていますか?

この場合、ツールバーにボタンを追加する最も簡単な方法は、起動時に読み込まれるテンプレートを介して Excel にボタンを追加することです。これにはボタンを含めて、コードを呼び出す小さな VBA コードを実行できます。MFC を介して作成したメニュー項目を呼び出すこともできます。

OLE による自動化の問題の 1 つは、信じられないほど強力であるにもかかわらず、ネイティブではなく ole ウィンドウで実行されていることを Excel が認識すると、特定の制限が発生するように見えることです。これにより、ボタンを作成して ole ウィンドウに表示することが妨げられている可能性があります。

これが役に立つことを願っています。

于 2008-10-20T08:47:06.107 に答える