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

解決


げんさん  2009-02-01 05:03:44  No: 69556

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


げんさん  2009-02-01 09:41:34  No: 69557

下記で既に質問されていました。
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 10:49:55  No: 69558

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

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-03 00:13:37  No: 69559

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

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


げんさん  2009-02-05 05:54:13  No: 69560

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


  2009-02-05 07:45:07  No: 69561

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

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


  2009-02-13 10:00:40  No: 69562

なにこれ?

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

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

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


  2009-02-13 11:46:05  No: 69563

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

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


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

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






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