ユーザーコントロールのフォントプロパティを有効にするには?

解決


APRIL  2002-08-20 14:59:57  No: 75982  IP: [192.*.*.*]

VB6.0にてピクチャーボックスを含むユーザーコントロールを作成しています
ユーザーコントロールにフォントプロパティを持たせ、これによりピクチャーボックスのフォントを変更しようと思います
現在Property Set Fontにて、引数のFontオブジェクトをそのままピクチャーボックスのFontにSetしていますが、変わりません

どうしたら変わりますでしょうか?
アドバイスお願いします

編集 削除
Say  2002-08-21 04:31:57  No: 75983  IP: [192.*.*.*]

普通にやったら変わりますが・・・。
どのようにやったら変わらないのでしょう?

ちなみにActiveXコントロールインターフェースウィザードによる
インターフェース自動コーディング例
(全部書くとやたら長いのでFontプロパティ部分のみ抜粋)
ちなみに、'MappingInfo で始まるコメント行は
コンパイラ用マッピング情報なので、変更、削除しないこと。

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
    Set Picture1.Font = PropBag.ReadProperty("Font", Ambient.Font)
End Sub

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
    Call PropBag.WriteProperty("Font", Picture1.Font, Ambient.Font)
End Sub

'MappingInfo=Picture1,Picture1,-1,Font
Public Property Get Font() As Font
    Set Font = Picture1.Font
End Property

Public Property Set Font(ByVal New_Font As Font)
    Set Picture1.Font = New_Font
    PropertyChanged "Font"
End Property

Printメソッドはウィザードでインプリメントできないので
たとえば

'MappingInfo=Picture1,Picture1,-1,Print
Public Sub Print_(ByVal strText As String)
    Picture1.Print strText
End Sub

Formでの使用例
プロジェクト→コンポーネントで自作OCXをチェックして、
ツールボックスからFormに貼り付けて
(上の抜粋からは割愛してますが、AutoRedrawも
インプリメントしてます。)

Private Sub Form_Load()
    userControl1.AutoRedraw = True
    userControl1.Font.Name = "@DF行書体"
    userControl1.Font.Size = 48
    userControl.Font.Bold = True
    userControl.Print_ "ABC"
End Sub

編集 削除
APRIL  2002-08-21 10:51:45  No: 75984  IP: [192.*.*.*]

Sayさん、回答ありがとうございます
一つ書き忘れましたが、ocxを作成し、新たに別のフォームに貼り付けてテストすると
デザイン時にプロパティウィンドウでフォントを変更すると反映されるのですが、実行すると元に戻ってしまいます
あと一歩ですかね?

現在のプログラムは、ウィザードで作られた「Property Set」のコードの中に
標準モジュールに定義した画面描写のモジュールを呼んでいます

Public Property Set Font(ByVal New_Font As Font)
    Set UserControl.Font = New_Font

    '付け加えた部分
    Set PicturBox.Font = New_Font  'ピクチャーボックスのフォントを設定
    Call Module1.Disp_PicturBox( PicturBox )  '画面描画モジュール呼出
    
    PropertyChanged "Font"
End Property

それと回答の中の
>'MappingInfo=Picture1,Picture1,-1,Print
>Public Sub Print_(ByVal strText As String)
>    Picture1.Print strText
>End Sub
のマッピンッグインフォは自分で付け加えたのですか?

編集 削除
Say  2002-08-21 20:33:56  No: 75985  IP: [192.*.*.*]

>デザイン時にプロパティウィンドウでフォントを変更すると反映されるのですが、実行すると元に戻ってしまいます

UserControl_ReadProperties,UserControl_WritePropertiesの
記述はダテではありません。
ここでメモリエリアに対するプロパティの読み書きをやってます。

>マッピンッグインフォは自分で付け加えたのですか?

そうです。
「多分コンパイラ擬似命令だろう」といういいかげんな発想で書きました。(^_^;

編集 削除
APRIL  2002-08-22 11:40:04  No: 75986  IP: [192.*.*.*]

Sayさん毎度どうもすいません

>UserControl_ReadProperties,UserControl_WritePropertiesの
>記述はダテではありません。
>ここでメモリエリアに対するプロパティの読み書きをやってます。

うーん、飾りじゃなかったんですね、これ

すいません、できました・・・
ありがとうございました

編集 削除