[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/11/05(Sun) 00:38
投稿者名:たいち
Eメール:
URL :
タイトル:
ActiveXドキュメント
はじめして たいちです。

ActiveXドキュメントで作成(VB6.0)したアプリケーションで

UserDocument1にCommand1を貼り付け
このCommand1のクリックイベントで別フォーム(Form1)をvbmodal表示させます。
このとき、IEの閉じるボタンをクリックすると、
以下のメッセージが表示されますが、
何か、回避する方法(たとえば、UserDocument1を押下不可にするなど)は
ありますでしょうか?ご教示の程よろしくお願い致します。

以下メッセージです。
「このウインドウはビジーです。
このウインドウを閉じると、問題が発生する可能性があります。
ウインドウを閉じますか?」

投稿時間:2006/11/05(Sun) 10:34
投稿者名:K.J.K.
Eメール:
URL :
タイトル:
Re: ActiveXドキュメント
やり方によってはできるかも知れませんが、原則として、モーダルダイアログは
ActiveX Documentのクライアントアプリ側に表示してもらうように作って下さい。

投稿時間:2006/11/05(Sun) 11:58
投稿者名:たいち
Eメール:
URL :
タイトル:
Re^2: ActiveXドキュメント
> やり方によってはできるかも知れませんが、原則として、モーダルダイアログは
> ActiveX Documentのクライアントアプリ側に表示してもらうように作って下さい。

クライアントアプリ側で表示してくださいということですが、
UserDocuentからFormをShow(vbModal)する以外に方法はあるということでしょうか?
(ActiveX Documentで作成したアプリは、クライアントアプリ側だと認識していましたので。
認識間違っていたら申し訳ありません。)

※何を実行したいかと言いますと、UserDocumentから何か操作をしたときに、
 ポップアップウインドウを別Formで表示したいのですが、
 このとき、Showで実行すると、裏に隠れたUserDocument側を操作することが
 可能になってしまいます。(このときUserDocumentをEnabled=Falseみたいなことを
 行いたいのですが、UserDocumentにこのプロパティは存在せず。)
 これを回避したいために別FormをShow vbModalにしました。
 

投稿時間:2006/11/05(Sun) 20:10
投稿者名:K.J.K.
Eメール:
URL :
タイトル:
Re: ActiveXドキュメント
誤解があるようなので書いておきますが、
「『ActiveX Document クライアント』アプリ」側です。

で、上記の場合は、デザインを見直すべきですよ。
くどく書きますが、Control or Documentサイト内で動くUIを持つ
ActiveX ControlやDocumentは、極力ダイアログを出すべきでは
ありません。ダイアログを表示するのはそのコンポーネントを
貼り付けたIEやOffice側が行うべきでしょう。

自分でダイアログを表示するのではなく、ダイアログを表示して
欲しいというサインを、たとえばRaiseEventでイベントとして
送り出し、それに応じてIEやOffice側のコードで対応する、という
構造にするとか。
# もっとも、RaiseEventとDocumentの相性の問題もありますが。