はじめまして、tohと申します。
早速質問なのですがActiveXDLLを作成して、
そのDLLをVBやVCから呼び出して操作しようと思ったのですが、
DLLを作成する際のクラスモジュールにどのように書いていい
のかわからず困っています。
フォームを表示する場合は
Sub FormShow()
Dim frm As New Form1
frm.Show vbModal
End Sub
と、これでよいことがわかったのですが、
このままだとフォームを開いただけであって、
その内にあるコマンドボタンなどの操作ができません。
どなたかコマンドボタンをクリックする方法をご教授いただけないでしょうか?
よろしくお願いします。
やりたいことがいまいち判りません。
ActiveXDLL に存在するフォームを、別のEXEから開いて、
その開いたActiveXDLLのフォームにあるボタンをクリックするのですか??
Sub FormShow()
Dim frm As New Form1
frm.Show vbModal
End Sub
っていうのは、ActiveXDLLのクラスに書かれているものですか?
ActiveXDLLに追加したフォームをVCで作成したEXEから開いてそのVCのEXEからActiveXDLLのフォーム上のコマンドボタンをクリックしたいのです。
Sub FormShow()
Dim frm As New Form1
frm.Show vbModal
End Sub
というのはクラスに書かれていて
http://www.kondo-net.gr.jp/softca/mfc2vb.htm
を参考にしました。
要領を得ない説明ですいません。
実際にボタンが押される(クリック)するというより、
ボタンがクリックされた時と同じ処理を、VCのEXEから実行させるっていうのでOKなら
DLLのForm1にあるボタンのクリックイベントをクラスから呼び出せるようにしておくっていうのでどうですか?
DLLのForm1にCommand1っていうボタンがあるとして、
Form1のフォームのモジュール内にクリックイベント処理を書いておく
Public Sub Command1_Click() ’クラスから呼び出せるようにPublicにしておく
(ここにクリックされたときに行う処理を書く)
End Sub
DLLのクラスモジュールでは
’frm オブジェクトはFormShow()の外に定義しておく
Dim frm As New Form1
Sub FormShow()
frm.Show vbModal
End Sub
Sub cmdClick()
frm.Command1_Click 'クリックイベントのプロシージャをコール
End Sub
EXE側からcmdClickを呼ぶ。
フォームをvbModalでフォームを表示してたら無理かもしれないですね。
フォームを閉じるまで、処理が戻ってこないんじゃないでしょうか。
minamiさんありがとうございます。
早速試してみます。
あとで報告します。
今試してみたところ無事にやろうとしていた操作をすることができました。
丁寧な説明どうもありがとうございました。
ツイート | ![]() |