C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ATLでRAD化を実現するには?


(過去ログ 91 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■54222 / inTopicNo.1)  ATLでRAD化を実現するには?
  
□投稿者/ ささお (1回)-(2010/10/10(Sun) 12:04:50)

分類:[C/C++] 

こんにちは。
よくデータコントロールなどコントロールを貼り付けると自動的に
プロパティにフォーム上にあるデータコントロールの一覧を表示したり、
データコントロールのプロパティ(フィールドの一覧など)を表示したりする
コンポーネントがあります。

ATLでActiveXコントロールを作成して、そのコントロールのプロパティの1つを
他のコントロールのプロパティウィンドウに表示させたいのです。
実行時は関連付けられたそのコントロールを制御したいのです。

上記を ATL又はMFCで実現させるにはどのような手順を踏めば良いのでしょうか?
(C#、VB.NET はサンプルがあるのですが、C++ はありません。(泣))

引用返信 編集キー/
■54223 / inTopicNo.2)  Re[1]: ATLでRAD化を実現するには?
□投稿者/ Azulean (619回)-(2010/10/10(Sun) 13:59:26)
2010/10/10(Sun) 14:02:01 編集(投稿者)

方法については調べられていませんが、ちょっと気になったことをお聞きします。

No54222 (ささお さん) に返信
> ATLでActiveXコントロールを作成して、そのコントロールのプロパティの1つを
> 他のコントロールのプロパティウィンドウに表示させたいのです。
> 実行時は関連付けられたそのコントロールを制御したいのです。

どのような制御をするつもりでしょうか?
ネイティブの C++ からマネージの Control クラスのメンバーにアクセスできるわけではありませんし、ウィンドウ(HWND)ベースで何かやりたいのかなとは思っていますが、どういったことをしたいのかが見えませんでした。

(最終的にやりたいこと次第では、ネイティブ C++ だけでは無理という結論になる可能性もあります)


あと、C# などでの実現方法が IExtenderProvider インターフェースだとすれば、あくまで Visual Studio がサポートしている手段に過ぎません。
他の開発ツールで汎用的に使える方法かどうかは保障されないので留意してください。(サポートされているかもしれないし、サポートされていないかもしれない)
引用返信 編集キー/
■54224 / inTopicNo.3)  Re[2]: ATLでRAD化を実現するには?
□投稿者/ ささお (2回)-(2010/10/10(Sun) 14:40:24)
Azulean 様
早速の返答ありがとうございます、説明不足でした。
具体的に示すと、、、

■やりたい事の詳細
1.ATLで自作のActiveXコントロールを作成。
  ・プロパティブラウザで表示するプロパティの1つに、仮に「DataControl」という
   読書プロパティを作る。
  ・MSFlexGridをフォームにおいてプロパティブラウザで見た時に、「DataControl」
   プロパティが、表示されて欲しい。
  ※.上記2点が、IExtenderProvider及び関連するインターフェースの効用だと思います。
   この時、ActiveXコントロールに保持したい情報としては、関連付けられたMSFlexGridの
   リソースID(数値、又は「Name」プロパティで命名した名称(文字列)。

2.実行時は、ActiveXコントロールのSetClientSiteハンドラのタイミングでフォーム上に乗っている
  コントロールを列挙して、(ocxの場合の列挙方法は知っています)、リソースIDで見つける。
  ・TypeLibライブラリで生成(ClassWizardの)したMSFlexGridのクラスに関連付けて、以後操作する。

こんな感じです。
一番知りたいのは、「1」の方法であります。

宜しくお願い致します。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -