VC++6.0でOCXを開発していますが、プロパティはboolean型の場合、このOCXを利用するフォームを設計するとき、OCXのboolean型プロパティに自動「true」と「false」の二つ選択項目をリストのかたちで表示されました。ただし、enum型のプロパティをつくりたいです。つまりOCXのプロパティに「1-left」「2-center」「3-right」のようなリストを表示したいですが、やりかたはよく分かりません。
ご存知の方がいれば、ぜひ教えていただきます。
宜しくお願い致します。
表示させるのはVBですか?
そうだとして話を進めます。(IDLです。ODLはよく知りません)
library セクションの外の enum はVBでは反映されません。
反映されるには、library の中に enum の宣言をする、
または、セクション外で宣言している enum をセクション中で typedef
します。
間違えました。
上のは、定数を宣言する方法でした。
すいません
有難う御座います。
odlファイルに以下のソースを追加しました。
typedef [ uuid(AB95479D-8CE4-52EA-99F3-69752424522B), hidden ]
enum {
styleFoo = 0,
styleBar = 1
} MyStyleSettings;
dispinterface _DTttttt
{
properties:
// メモ - ClassWizard はこの位置にプロパティ情報を追加します。
// このセクションの編集は慎重に行ってください。
//{{AFX_ODL_PROP(CTtttttCtrl)
[id(1)] MyStyleSettings test;
//}}AFX_ODL_PROP
methods:
// メモ - ClassWizard はこの位置にメソッド情報を追加します。
// このセクションの編集は慎重に行ってください。
//{{AFX_ODL_METHOD(CTtttttCtrl)
//}}AFX_ODL_METHOD
[id(DISPID_ABOUTBOX)] void AboutBox();
};
そして、このOCXをVBのフォームに利用すれば、確かにtestというプロパティは自動的に「0-styleFoo」「1-styleBar」の選択項目が設定されています。
ただし、このOCXをVCのフォームに利用するとき、testというプロパティを表示していません。