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

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

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

Re[6]: ATLでユーザーコントロールを作成したい


(過去ログ 13 を表示中)

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

■4085 / inTopicNo.1)  ATLでユーザーコントロールを作成したい
  
□投稿者/ Hirotow (88回)-(2007/06/06(Wed) 09:24:07)

分類:[C/C++] 

2007/06/06(Wed) 09:45:17 編集(投稿者)

現在ATLを用いてActiveXコントロールの開発をしているのですが、
そもそもATLでActiveXとして貼り付け可能なユーザーコントロールを作る方法がわかりません。
作成したいのは、Windows.FormsアプリケーションのUserControl継承コントロールのようなものです。

※追記
開発環境はVS.NETのC++でATLアプリケーションをテンプレートにしています。

よろしくお願いします。
引用返信 編集キー/
■4089 / inTopicNo.2)  Re[1]: ATLでユーザーコントロールを作成したい
□投稿者/ とっちゃん (144回)-(2007/06/06(Wed) 11:20:03)
とっちゃん さんの Web サイト
No4085 (Hirotow さん) に返信

> 現在ATLを用いてActiveXコントロールの開発をしているのですが、
> そもそもATLでActiveXとして貼り付け可能なユーザーコントロールを作る方法がわかりません。
> 作成したいのは、Windows.FormsアプリケーションのUserControl継承コントロールのようなものです。
>
> ※追記
> 開発環境はVS.NETのC++でATLアプリケーションをテンプレートにしています。
>
ActiveX Control を ATL で作りたいと言うことでしょうか?
貼り付け先は、なにを想定していますか?
貼り付け先によっては ActiveX Control にしないほうが効果的という場合もあります。

それと、VSのバージョンはなんでしょう?
VS2005 には、「ATLアプリケーション」というテンプレートは無かったんですが?

古いのにはあったっけ?

引用返信 編集キー/
■4091 / inTopicNo.3)  Re[2]: ATLでユーザーコントロールを作成したい
□投稿者/ Hirotow (90回)-(2007/06/06(Wed) 12:24:46)
2007/06/06(Wed) 12:26:19 編集(投稿者)

> ActiveX Control を ATL で作りたいと言うことでしょうか?
そうです。

> 貼り付け先は、なにを想定していますか?
> 貼り付け先によっては ActiveX Control にしないほうが効果的という場合もあります。
ActiveXをサポートするすべてのアプリケーションを想定しています。
おそらくは用途上MFCが多いと思います。

> それと、VSのバージョンはなんでしょう?
> VS2005 には、「ATLアプリケーション」というテンプレートは無かったんですが?
>
> 古いのにはあったっけ?
>
VS.NET2003です。
テンプレート名はATLプロジェクトでした。間違えていたようです。
引用返信 編集キー/
■4093 / inTopicNo.4)  Re[3]: ATLでユーザーコントロールを作成したい
□投稿者/ とっちゃん (145回)-(2007/06/06(Wed) 13:35:55)
とっちゃん さんの Web サイト
No4091 (Hirotow さん) に返信

>>貼り付け先は、なにを想定していますか?
>>貼り付け先によっては ActiveX Control にしないほうが効果的という場合もあります。
> ActiveXをサポートするすべてのアプリケーションを想定しています。
> おそらくは用途上MFCが多いと思います。
>
Managed じゃないってことですね。
Managed がターゲットで新規作成なら ActiveX にしないほうがなにかと都合がいいですw

> VS.NET2003です。
> テンプレート名はATLプロジェクトでした。間違えていたようです。

了解です。
ざくっと新規作成の方針ですが、属性ははずしておくことをお勧めします。
属性をつけておくと不必要にタイプライブラリまでビルドされてしまうため、不自由しますので。

で、作成ですが、クラスの追加で、「ATL コントロール」を選びます。
あとは、ウィザードに従って名前を入れたり、色々と設定するのですが
それを行う前に、どんなコントロールを用意したいのかをCOMのアーキテクチャに
したがって設計しておく必要があります。

まるっきりわかんねーという場合は、チュートリアルを一度こなしてみるとよいと思います。
MSDN 2006/01 の場合は
開発ツールと言語-Visual Studio.NET-製品ドキュメント-Visual C++-機能の追加Visual C++ ライブラリ- ATL-ATL チュートリアル
ms-help://MS.VSCC.2003/MS.MSDNQTR.2006JAN.1041/vccore/html/_atl_ATL_Tutorial.htm
にコントロールのチュートリアルがあります。

こちらを一度やってみると何となくわかるんじゃないかと。

引用返信 編集キー/
■4094 / inTopicNo.5)  Re[4]: ATLでユーザーコントロールを作成したい
□投稿者/ Hirotow (91回)-(2007/06/06(Wed) 13:41:12)
ありがとうございます。

No4093 (とっちゃん さん) に返信
> Managed じゃないってことですね。
> Managed がターゲットで新規作成なら ActiveX にしないほうがなにかと都合がいいですw
そういうことだったんですね。
速度面でマネージドは却下でした。
張付先にはあるやもしれませんが、ラッパークラスで対処します。

>>VS.NET2003です。
>>テンプレート名はATLプロジェクトでした。間違えていたようです。
>
> 了解です。
> ざくっと新規作成の方針ですが、属性ははずしておくことをお勧めします。
> 属性をつけておくと不必要にタイプライブラリまでビルドされてしまうため、不自由しますので。
タイプライブラリのデメリットを教えていただけると幸いです。

> で、作成ですが、クラスの追加で、「ATL コントロール」を選びます。
> あとは、ウィザードに従って名前を入れたり、色々と設定するのですが
> それを行う前に、どんなコントロールを用意したいのかをCOMのアーキテクチャに
> したがって設計しておく必要があります。
>
> まるっきりわかんねーという場合は、チュートリアルを一度こなしてみるとよいと思います。
> MSDN 2006/01 の場合は
> 開発ツールと言語-Visual Studio.NET-製品ドキュメント-Visual C++-機能の追加Visual C++ ライブラリ- ATL-ATL チュートリアル
> ms-help://MS.VSCC.2003/MS.MSDNQTR.2006JAN.1041/vccore/html/_atl_ATL_Tutorial.htm
> にコントロールのチュートリアルがあります。
>
> こちらを一度やってみると何となくわかるんじゃないかと。
>
試してみます。
引用返信 編集キー/
■4096 / inTopicNo.6)  Re[5]: ATLでユーザーコントロールを作成したい
□投稿者/ とっちゃん (146回)-(2007/06/06(Wed) 14:21:52)
とっちゃん さんの Web サイト
No4094 (Hirotow さん) に返信

>>Managed がターゲットで新規作成なら ActiveX にしないほうがなにかと都合がいいですw
> そういうことだったんですね。
> 速度面でマネージドは却下でした。
> 張付先にはあるやもしれませんが、ラッパークラスで対処します。
>
意図しない場合はともかく、想定しているなら別建てにする方がいいです。<Managed用コントロール
COM の相互運用の面倒な面が細かいところで出てしまうこともあるのでww


>>属性をつけておくと不必要にタイプライブラリまでビルドされてしまうため、不自由しますので。
> タイプライブラリのデメリットを教えていただけると幸いです。
>
タイプライブラリは、C/C++ でいえば、ヘッダーに相当するものです。
更新されると引きずられてみんなビルドされちゃう。

属性付の場合、公開情報とは無縁の部分を修正したつもりでも、タイプライブラリが
ビルドされることがあるので、結果として、全体を引きずり込んでしまいます。

以前、興味本位でつけたプロジェクトが1つだけあるんですが、
公開情報が何も変わらないのにいつもビルドされてて開発中にえらい苦労したことが...w

件のチュートリアルでもそうですが、VS2005も属性はデフォルトではずしてます。

引用返信 編集キー/
■4100 / inTopicNo.7)  Re[6]: ATLでユーザーコントロールを作成したい
□投稿者/ Hirotow (92回)-(2007/06/06(Wed) 14:48:06)
なるほど…
検討してみます。

> タイプライブラリは、C/C++ でいえば、ヘッダーに相当するものです。
> 更新されると引きずられてみんなビルドされちゃう。
>
> 属性付の場合、公開情報とは無縁の部分を修正したつもりでも、タイプライブラリが
> ビルドされることがあるので、結果として、全体を引きずり込んでしまいます。
>
> 以前、興味本位でつけたプロジェクトが1つだけあるんですが、
> 公開情報が何も変わらないのにいつもビルドされてて開発中にえらい苦労したことが...w
>
> 件のチュートリアルでもそうですが、VS2005も属性はデフォルトではずしてます。
>
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -