Vc++画面にC#コンポーネント – プログラミング – Home

Vc++画面にC#コンポーネント
 
通知
すべてクリア

[解決済] Vc++画面にC#コンポーネント


Sera
 Sera
(@Sera)
ゲスト
結合: 15年前
投稿: 4
Topic starter  

C#コンポーネントをVC++(ネイティブ)で使用することは可能でしょうか?
直接使えなくても見せかけでも構いませんので方法があれば教えてください
例えばC#で子画面だけ作ってVC++画面の子画面として表示するとか
全画面をC#で書きなおせばいいんでしょうけど
作業時間が取れなくてなんとかC#コンポーネントを
VC++画面にくみこめないかなと思っています
C#コンポーネントはグラフコントロールです。
VC++は2005です。OSはXPです。


引用未解決
トピックタグ
C#
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

C++/CLI使えば?


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2659
 

επιστημηさんも書かれていますけれど、
完全にネイティブでと言う話なら無理なんじゃないかと思います。
C#は.NET Frameworkを使っているので少なくともC++/CLIの助けが
必要になると思います。

C++/CLIでラッパーでも作れば、何とかなるのかなぁ。


返信引用
Sera
 Sera
(@Sera)
ゲスト
結合: 15年前
投稿: 4
Topic starter  

ありがとうございます。
C++/CLIだと普通にC++のForm使えるんですね…

MFC01::Form1^ form1 = gcnew MFC01::Form1;
form1->Show();

グラフのみ.netコンポーネントにしたいだけなので
これでいこうと思います。


返信引用
subaru
 subaru
(@subaru)
ゲスト
結合: 18年前
投稿: 381
 

>MFC01::Form1^ form1 = gcnew MFC01::Form1;
>form1->Show();
>
>グラフのみ.netコンポーネントにしたいだけなので
>これでいこうと思います。

画面自体をFormで作るならそれでいいけど、MFCのダイアログ内でグラフのみ
使うとかだったらグラフコントロールのHandleプロパティを使って
SetParentで子ウインドウにすることで、MFCダイアログのコントロールとして
見せることもできるんじゃないかなと。

ちなみにその場合はガベージコレクタに回収されてコントロールが
消滅したりしないように、あらかじめダイアログクラスのプライベートメンバに
gcrootテンプレートの変数を用意しておき、gcnewで生成したコントロールの
インスタンスをそちらに割り当てる必要があると思われます。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

きょうびのMFCはFrame内にWindows-Formsを
貼り付ける台紙:CWinFormsViewが用意されちょります。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 21年前
投稿: 600
 

ご参考: CWinformsView
http://msdn.microsoft.com/ja-jp/library/6xfx8bsa.aspx


返信引用
匿名
 匿名
(@匿名)
ゲスト
結合: 1秒前
投稿: 0
 

>きょうびのMFCはFrame内にWindows-Formsを
>貼り付ける台紙:CWinFormsViewが用意されちょります。

ほんとだ・・・
コントロールもCWinFormsControl::CreateManagedControl()
呼ぶだけで作れました。

MFCも奥が深いですね(^^;


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました