コマンドボタンをクリックするようなDLLをつくるには?

解決


toh  2003-10-16 02:49:41  No: 109155

はじめまして、tohと申します。
早速質問なのですがActiveXDLLを作成して、
そのDLLをVBやVCから呼び出して操作しようと思ったのですが、
DLLを作成する際のクラスモジュールにどのように書いていい
のかわからず困っています。
フォームを表示する場合は
Sub FormShow()
    Dim frm As New Form1
    frm.Show vbModal
End Sub
と、これでよいことがわかったのですが、
このままだとフォームを開いただけであって、
その内にあるコマンドボタンなどの操作ができません。
どなたかコマンドボタンをクリックする方法をご教授いただけないでしょうか?
よろしくお願いします。


minami  2003-10-16 06:42:58  No: 109156

やりたいことがいまいち判りません。
ActiveXDLL  に存在するフォームを、別のEXEから開いて、
その開いたActiveXDLLのフォームにあるボタンをクリックするのですか??

Sub FormShow()
    Dim frm As New Form1
    frm.Show vbModal
End Sub
っていうのは、ActiveXDLLのクラスに書かれているものですか?


toh  2003-10-16 07:51:10  No: 109157

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
を参考にしました。
要領を得ない説明ですいません。


minami  2003-10-16 09:10:36  No: 109158

実際にボタンが押される(クリック)するというより、
ボタンがクリックされた時と同じ処理を、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でフォームを表示してたら無理かもしれないですね。
フォームを閉じるまで、処理が戻ってこないんじゃないでしょうか。


toh  2003-10-16 20:17:35  No: 109159

minamiさんありがとうございます。
早速試してみます。

あとで報告します。


toh  2003-10-16 20:47:40  No: 109160

今試してみたところ無事にやろうとしていた操作をすることができました。
丁寧な説明どうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加