MFC ActiveX Control でAppearanceのようなプロパティを作るには?

解決


げんさん  2009-01-31 20:03:44  No: 69556  IP: 192.*.*.*

VBで使うOCXを作ろうとしていますす。
VBのテキストボックスのプロパティのAppearanceは 0-フラット 1-3D を選択できます
が、オリジナルに作成したプロパティに 0-無し 1-有り で選べるプロパティ
を作る方法を教えてください。

編集 削除
げんさん  2009-02-01 00:41:34  No: 69557  IP: 192.*.*.*

下記で既に質問されていました。
http://madia.world.coocan.jp/cgi-bin/Vcbbs/wwwlng.cgi?print+200401/04010012.txt
上記より切り貼り----------------------------------------------------
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というプロパティを表示していません。
---------------------------------------------------------------------
typedef [ uuid(AB95479D-8CE4-52EA-99F3-69752424522B), hidden ]
    enum {
        styleFoo = 0,
        styleBar = 1
    } MyStyleSettings;

を追加する場所がわかりません。

uuid(AB95479D-8CE4-52EA-99F3-69752424522B), ....とあることは
直接テキストに追加できないのかな?

編集 削除
げんさん  2009-02-01 01:49:55  No: 69558  IP: 192.*.*.*

下記の場所で翻訳も出来ました。

library XXXXLib
{
  importlib(STDOLE_TLB);
  importlib(STDTYPE_TLB);

typedef [ uuid(AB95479D-8CE4-52EA-99F3-69752424522B), hidden ]
    enum {
        フラット = 0,
        3D = 1
    } MyStyleSettings;

3Dを全角で記述しているのでが、半角で記述するとエラーになって
しまいました。(先頭が数字だから?)

3D
#,##0
#,###
yy/mm/dd
yyyy/mm/dd
なども使いたいのですがエラーになります。
""や()で括ってもだめでした
何方か、記述方法を知りませんか?

編集 削除
 2009-02-02 15:13:37  No: 69559  IP: 192.*.*.*

[VC40] OCX 列挙型プロパティの作成方法
http://support.microsoft.com/kb/403823/ja
これで出来ました。

新規でプロジェクト作成するなどして
上から順番通りにやってみてください。

編集 削除
げんさん  2009-02-04 20:54:13  No: 69560  IP: 192.*.*.*

"む"さんありがとうございます。
意味も分からず記述したら出来ました。

編集 削除
 2009-02-04 22:45:07  No: 69561  IP: 192.*.*.*

http://support.microsoft.com/kb/191872/ja
という技があったようですが、VB6では使えないようです。

#私も今回の質問があって初めて知った使い方なので
#お互い精進しましょう。

編集 削除
 2009-02-13 01:00:40  No: 69562  IP: 192.*.*.*

なにこれ?

>[VC40] OCX 列挙型プロパティの作成方法」
>http://support.microsoft.com/kb/403823/ja

いきなりリンク先がなくなったので、同様の情報が必要な方は
MSDNのオフラインの方のヘルプで、
キーワード「OCX 列挙型プロパティの作成方法」で検索してください。

>む 2009/02/02(月) 15:13:37 
の時点では存在していたのですが検索できなくなってます。

編集 削除
 2009-02-13 02:46:05  No: 69563  IP: 192.*.*.*

多分、サンプルの
「あああ」
「いいい」
「ううう」
「えええ」
とかがMS的に駄目だったのかも・・・。

最近のオフラインMSDNでは知りませんが「あああ」でも検索できました。

編集 削除