OCXで親フォームのイベントを拾うには?

解決


モッテ  2003-12-10 20:05:02  No: 80826

OCXを貼り付けた親フォームのイベントを貼り付けたOCXで拾い、親フォームのイベントでOCXから親フォームを操作したいのですが・・・。こんなこと可能なんでしょうか?


岡田 之仁  2003-12-12 18:32:29  No: 80827

OCX等ActiveXや、ATL・STL構造のものでも、親フォームへは
参照しかできなかったと思います。
イベントを拾いたいのであれば、メッセージフックしかないと
思います。
親を参照することで、ウィンドウハンドルが解りますから、そ
のハンドルめがけて、メッセージフックし、イベントを拾う事
になると思いますが・・・

※  昔作ったものを調べてみて、そのように書いていましたの
      で・・・

他によい方法があれば、そのコーディングされた方、コメント
をよろしく!

以上。


魔界の仮面弁士  2003-12-12 20:23:16  No: 80828

VB6製OCXを、VB6のフォームに貼り付けて使用する、という前提であれば…。

Option Explicit

Private WithEvents ParentForm As VB.Form

Private Sub ParentForm_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    UserControl.Cls
    UserControl.Print Format(Now(), "hh:nn:ss") & " - MouseMove(";
    UserControl.Print Button; ","; Shift; ","; X; ","; Y; ")"
End Sub

Private Sub UserControl_Paint()
    If Not UserControl.Ambient.UserMode Then
        UserControl.Print UserControl.Ambient.DisplayName
    End If
End Sub

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
    If UserControl.Ambient.UserMode Then
        Set ParentForm = UserControl.Extender.Parent
    End If
End Sub


モッテ  2003-12-12 20:30:21  No: 80829

ご回答ありがとうございます。
大変参考になりました。


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

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






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