MFCではじめるActiveXプログラミング

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
需要がありそうなのになかったのでスレ作りました。
情報交換していきましょう。
2デフォルトの名無しさん:2006/03/24(金) 16:30:44
お前が欲しいだけだったんじゃないのかと。
3デフォルトの名無しさん:2006/03/24(金) 16:45:51
>>2
おい、良スレの予感するのに、しょっぱなから そういうこと言うのやめろよ〜
4デフォルトの名無しさん:2006/03/24(金) 16:49:13
>>1
氏ねよ〜〜
5デフォルトの名無しさん:2006/03/24(金) 16:51:35
>>1
氏ねよ〜〜
6デフォルトの名無しさん:2006/03/24(金) 17:27:34
2=4=5=粘着
7デフォルトの名無しさん:2006/03/24(金) 17:32:54
>>1
氏ねよ〜〜
8デフォルトの名無しさん:2006/03/25(土) 06:56:55
>>1
死ね さっさと削除依頼だしてこい
9デフォルトの名無しさん:2006/03/25(土) 07:02:17
「需要がなさそう」だったら立てるなよw
「なかったので作りました」だったらわかるが・・w
10デフォルトの名無しさん:2006/03/25(土) 16:04:17
何この粘着達
11デフォルトの名無しさん:2006/03/25(土) 16:15:06
ActiveXってどうやって作るんですか?
12デフォルトの名無しさん:2006/03/25(土) 16:25:16
たぶん関連スレ
【OLE】オートメーション総合スレ【ActiveX】
http://pc8.2ch.net/test/read.cgi/tech/1137771139/l50
13デフォルトの名無しさん:2006/05/01(月) 01:05:41
>>9
日本語の勉強からはじめれ
14デフォルトの名無しさん:2006/05/03(水) 03:06:36
あの、MFCでActiveXコントロールを作ってたら
http://f42.aaa.livedoor.jp/~imawaka/imgboardphp/src/1146577850180.jpg
のエラーが出るんですが、

ダイアログに「ActiveXコントロールの挿入」をした際に出ます。

なぜでしょうか?

15デフォルトの名無しさん:2006/05/03(水) 03:10:03
「MFC」と「ActiveX」って。
.NET Frameworkについていけない老いぼれさんですか?
16デフォルトの名無しさん:2006/05/03(水) 17:54:58
>>15
若者よ、それなら14に答えてやれよ
17デフォルトの名無しさん:2006/06/06(火) 03:46:48
ActiveX、応答せよ。
18デフォルトの名無しさん:2006/06/06(火) 09:07:12
太平洋の海に散りました。
19デフォルトの名無しさん:2006/09/07(木) 10:38:56
VC++のMFCは、結構優しく簡単にネイテブコード(マシン語プログラム)プログラム作れるね。
気に入ってます。

ActiveX てなにやらせるのに有るのか 解らないよ。
知ってる人教えて

20デフォルトの名無しさん:2006/09/07(木) 10:51:41
ヒント:WindowsDNA
21デフォルトの名無しさん:2006/09/07(木) 11:01:54
>>20
WindowsDNA とはデベロッパー・ネットワーク・アプリケーションのことかい。
22デフォルトの名無しさん:2006/09/07(木) 11:18:01
23デフォルトの名無しさん:2006/09/07(木) 13:34:37
MFCでActiveXって作ったこと無いな
素直にATLで作ればいいのに
24デフォルトの名無しさん:2006/09/07(木) 13:42:43
23 名前:デフォルトの名無しさん :2006/09/07(木) 13:34:37
MFCでActiveXって作ったこと無いな
素直にATLで作ればいいのに
25デフォルトの名無しさん:2006/09/07(木) 13:48:16
何かおかしな事いったか?
まさかATLとMFCって同じだと思ってたりしてる?
26デフォルトの名無しさん:2006/09/07(木) 16:36:06
>>22
Win ディストゥリビューテド インターネット アプリケーションのことか

それで、そのネットに分散したアプリケーションを作ると良いこと有るのか?
27デフォルトの名無しさん:2006/09/07(木) 16:45:25
>>26
XPのSP2から付属のFWに通信をブロックされる。
I日Mの社内システムが動かなくなったというニュースが出てた。
28デフォルトの名無しさん:2006/09/07(木) 16:47:37
現在 Visual C++ MFC の特訓中です。
VBよりかなり難しいが、ランタイム不要で稼働するアプリが出来ることが嬉しい。

MFC関数を使えば、C++よりはずっと効率的にソフト開発が可能なのが良い。

しかも、ネイテブコードにコンパイルするので高速だ。(俺には不要と言うか関係ないけど)
でも、ランタイム不要は、大いに気に入った。

と言うのは、友人に開発中のソフトの試用をメール送信して頼んだら、ランタイムのダウンロードが
出来なかったからね。(MSが意地悪してるのかな?)
29デフォルトの名無しさん:2006/09/07(木) 16:51:01
>>27
それって、ActiveX とどう関係有るの?
30デフォルトの名無しさん:2006/09/07(木) 16:54:32
>>29
ActiveXを使ったウェブアプリが動かなくなったってこと。
31デフォルトの名無しさん:2006/09/07(木) 17:02:12
>>28
VC++で作ると結局OCXコントロールに悲惨な目にあわされるよ。

完全にネイティブするならDelphi or BCB(今はTurbo C++)。

>ボーランド、各種プログラミングソフトの無料提供開始
ttp://gigazine.net/index.php?/news/comments/20060906_turbo/
32デフォルトの名無しさん:2006/09/07(木) 17:26:53
>>29
ついでに書いとくと、ウェブアプリじゃない通常のアプリは、
ActiveXを経由したコントロールよりも、
クラス派生できる言語でクラスライブラリ派生した方が、
開発効率うp、性能うpだお。
33デフォルトの名無しさん:2006/09/08(金) 03:00:05
>>31
完全にネイテブと言う事は、Winライブラリィに頼らないネイテブと言うことかい?

それで、ボーランドC++はWinライブラリィに依存していないと言うことかい。?
34デフォルトの名無しさん:2006/09/08(金) 03:01:52
>>32
結局ActiveXのヒントは良いが返って解ったような全然混乱させられたようなで
全く理解出来なかったね。
35デフォルトの名無しさん:2006/09/08(金) 08:46:19
>>33
Win32APIネイティブということであって、ActiveXに依存してないということ。

>>34
ActiveXの前身のOLE2本でも、M$社内でもこのテクノロジーを説明できる人は居ないが、
これからのプログラミングはgeneric.cからOLE形式になるって言ってた。
だから混乱させられて当たり前。

ちなみに今は、COM(ActiveXの次の名前)とVBではOOPの海を泳ぎきることは出来ないという記事を
M$DNに出し、これからは全てのプログラミングはドトネトになるとアナウンス。
36デフォルトの名無しさん:2006/09/08(金) 13:03:41
>>35
混乱しても当たり前ですか?成る程じゃ気にせんことにしょう。

普通にMFCでActiveXに関係なくコード書いた時は、ActiveXは関係無いのでしょうね。?

この件はどうですか?
プロジェクト立てるときMFC ActiveXコントロール と MFC アプリケーションが
有りますが、もっぱらMFC アプリケーションでプロジェクト立てています。
MFC ActiveXコントロールでは、何か得点が有るのでしょうか?

37デフォルトの名無しさん:2006/09/08(金) 13:14:23
>>35
> M$DNに出し、これからは全てのプログラミングはドトネトになるとアナウンス。

全て .NET に成ると言われてもランタイムをマイクロソフトがコントロールしているのが気に入らない。
.NET プログラムにランタイムを組み込み、VBでもC#でもソフト単体で稼働するならVBでもC#でも
良いと思うけどね。

VBの方が超簡単だし効率も良いしね。
気にくわないのが、ランタイムをソフトに組み込めずMSがランタイムをコントロールしていることです。
38デフォルトの名無しさん:2006/09/08(金) 14:41:35
>>36

Win32API直コールでGUIを作るのに比べると、ソースを読み書きしやすい。

しかし、GUIクラスライブラリ使った開発に比べると、ソース書き難い(素直な派生出来ない)、動作不安定(メモリ不足エラー。レジストリ管理)。
3938:2006/09/08(金) 16:21:29
書き方悪かったね。

先ず前提としてMFCは史上最低のOOPクラスライブラリで、
GUIに関してはクラスライブラリでなくて、リソースエディタ&Win32APIコールと大差ありません。

その上で、
ActiveXコントロール使う開発は、Win32API直コールでGUIを作るのに比べると、ソースを読み書きしやすい。

しかし、ActiveXコントロール使う開発は、GUIクラスライブラリ使った開発に比べると、ソース書き難い(素直な派生出来ない)、動作不安定(メモリ不足エラー。レジストリ管理)。
40デフォルトの名無しさん:2006/09/09(土) 09:10:33
>>39
結論として、MFC アプリケーションでプロジェクトを立てる方が、MFC ActiveX コントロールで
プロジェクト立てるより、ソース書きやすいと言う事でしょうか?
41デフォルトの名無しさん:2006/09/09(土) 15:26:49
>>40
なんかごちゃごちゃしてるけど、MFC ActiveX コントロールは
使わない、で当面OKじゃないか。

どうして比較してるのか分らないけど、通常のアプリケーションと
ActiveXは用途が違うでしょ。ブラウザやオフィスのコント
ロールとか作りたいの? もしくはVB6で使う部品とか。
4238:2006/09/09(土) 15:30:42
>>40
結論をもとめるならActiveXはスルーが最強。

途中経過の推論は若干違う。

やっぱ、GUIGUIした画面を作るには、
フォームにコンポーネントやそれを派生したものをペタペタはるべき。

高機能なActiveXを作ってVBフォームやVC++のMFCアプリケーションで使うというのが、
M$推奨のWindowsDNAであった。

しかし、そのWindowsDNAが終焉したのは、ActiveXコントロールよりも、
素直にクラスライブラリを派生したクラスの方がさらに開発しやすかったため。
43デフォルトの名無しさん:2006/09/10(日) 10:43:57
ActiveXコントロールはActiveXサーバー(コンテナ)の機能を持つ
アプリ(オフィス、IEなど)に単なるボタンとかフォーム以上の機能
を持ったオブジェクトを貼り付けたいときに作成する。

なので、MFC ActiveX コントロールで作成したプロジェクトは
普通ユーザーが直接起動するアプリケーションを作成するもの
ではない。

ソースが書きやすいかどうかということを聞いてるけど、MFCで
ある以上通常のMFCと同じ感覚で書くことは出来る。
44デフォルトの名無しさん:2006/09/11(月) 23:18:37
>>43
了解です。
じゃ、今まで通りMFC アプリケーション でプロジェクト立てて、コード書くのが
正解ですね。
45デフォルトの名無しさん:2006/09/11(月) 23:33:58
正解ってなんだ
46デフォルトの名無しさん:2006/09/12(火) 08:37:39
間違いに対して、正解じゃね?

コードを書くのに、正解と間違いがある。
47デフォルトの名無しさん:2006/09/12(火) 09:04:53
>>45
正しい解釈だと言う事ですよ。
48デフォルトの名無しさん:2006/11/23(木) 15:10:56
テキストボックスの左に上下のボタンが付いていて、それをクリックすると
テキストボックス内の値がインクリメント/デクリメントされるコントロールを
使ったプログラムを作成したいのですが、どのように使って良いのか分かりません
自分なりにネットで調べてみても良い情報が見つかりませんでした
(自分の検索の仕方が下手クソなだけかもしれませんが・・・)
このコントロールを使う方法もしくは参考になるような分かり易いサイトを
ご存知でしたら、どうか教えて下さいm(_ _)m
お願いします
4948:2006/11/23(木) 15:11:52
すみません、一部訂正です

>テキストボックスの左に
テキストボックスの右に

失礼致しました
50デフォルトの名無しさん:2006/11/23(木) 15:47:41
>>48-49
CreateUpDownControl()とか
51デフォルトの名無しさん:2006/11/23(木) 15:55:41
>>50
ご回答、ありがとうございます
使い方を調べてみます
52デフォルトの名無しさん:2006/11/23(木) 23:43:24
リストビューの一番左のカラム(列)がツリービューのようになっている
コントロールってどうやれば使うことができますか?
色々と調べてはいるのですが、さっぱり分からないのが現状です
どうか、お知恵を貸してください
53デフォルトの名無しさん:2007/04/13(金) 23:56:32
つ市販本
54デフォルトの名無しさん:2007/05/12(土) 04:02:38
Javascriptへは配列を引数にしたイベントをFireできないでOK?
55デフォルトの名無しさん:2007/05/17(木) 17:18:35
MFCのCEditのあたりってUNICODEでしたっけ?ANSIでしたっけ?
56デフォルトの名無しさん:2007/05/17(木) 17:50:53
>>55
困ったことにマニフェストをXPスタイルにするとUNICODE強制になる。
(クラシックならANSIでもいける) でもそれってActiveXと関係ないな。
5755:2007/05/17(木) 17:55:26
ご回答thx!>>56

確認ですがそれって、V$200X(正確に何年度バージョンか知りたかったり。。。)のことですね?

実は自分V$6なんですが、それだとやっぱANSIでしょうか。
58デフォルトの名無しさん:2007/05/17(木) 18:52:43
いや、中のエディトコントロールの仕様でMFCの関知するところではない。
つまり、VSのバージョンによる問題ではない。
5955:2007/05/18(金) 08:51:01
何だってー。(AA略)

1個のExeに対して、manifestファイルの付け方で、ANSI/UNICODEが切り替わると?
60デフォルトの名無しさん:2007/05/18(金) 16:56:37
Get/SetWindowTextなどでは、コンパイル時のUNICODE定義に従うけど、
comctl32.dllのバージョン6では、一部の文字列の長さや位置を指定するウィンドウメッセージで、
ANSI/UNICODEのどちらでも常にUNICODEとしての値を使うものがある。
61デフォルトの名無しさん:2007/10/11(木) 20:46:26
コンテナ(IE)のウィンドウをフックすることはできますか?
62デフォルトの名無しさん:2007/11/24(土) 16:02:41
VisualStudio2005で開発を行っています
現在MFCとC++で開発しているソフトを切り分けて
VB.NETのフォームにベタベタ貼り付けて利用できるようにしないといけなくなりました
(引継ぎの都合で)
ActiveXで開発してやれば良いというところまでは分かりましたが
コントロールを作成して、OnDrawメソッドでいろいろ描画してみても変更が反映されないで躓いております。
多分、ActiveXの作成時にいじるところを間違っていると思うのですが、お知恵をお貸しください。
63デフォルトの名無しさん:2007/11/24(土) 17:07:34
VB.NETならActiveXにする必要性を感じないけどいいのか?
6462:2007/11/24(土) 23:32:12
え? すいません。あの・・・、もう少し詳しく教えていただけないでしょうか?
65デフォルトの名無しさん:2007/11/25(日) 02:18:36
COMでなく、.NET使うという選択肢もあるということ。
VB.NET的にはそっちのほうがネイティブだし。

こういう感じで、C++でも作れるはず。
http://www.microsoft.com/japan/msdn/thisweek/300x10/phase2/customcontrol/cs.aspx
ここでは新しくプロジェクトを作っているが、
「クラスの追加」からやれば既存プロジェクトへの追加も可能だったはず。

言語のほう、C++/CLIといって.NET用に拡張されているんで、そこ気を付けて。
6662:2007/11/25(日) 23:50:39
http://msdn2.microsoft.com/ja-jp/library/ms235628(VS.80).aspx
ご協力ありがとうございます。
一応、上のurlを参考に目処を立てることができました。
http://msdn2.microsoft.com/ja-jp/library/ykxs4hhh(vs.80).aspx
一応、ActiveXでの作成も、上のサンプルをコピーしたところ、きちんと動きました
やっぱり、コードの一部を間違っていたようです。
6762:2007/11/28(水) 13:38:33
先日に続いて質問申し訳ありません。AddFileというメソッドをVB.NETに対して公開したいと思っています。
ディスパッチマップという所にインターフェースを加えてあげればよいらしいということは分かったのですが

インターフェースのヘッダファイルに
// ディスパッチ マップ
//{{AFX_DISPATCH(クラス名)
afx_msg void AddFile();

// ディスパッチ と イベント ID
public:
enum {
//{{AFX_DISP_ID(クラス名)
dispidAdd = 1L,

の記述の2箇所。インターフェースのソースファイルに

BEGIN_DISPATCH_MAP(クラス名, COleControl)
//{{AFX_DISPATCH_MAP(クラス名)
DISP_FUNCTION(クラス名, "AddFile", AddFile, VT_EMPTY, VTS_NONE)

の記述。あとodlファイルに

methods:
//{{AFX_ODL_METHOD(クラス名)
[id(1)] void AddFile();

の様に4箇所に継ぎ足しを行えばよいのかな、と試したのですがVB側で読み込んでみるとインターフェースが公開されていません。やり方はこれであっているのでしょうか?
6862:2007/11/29(木) 15:02:22
申し訳ありません。自己解決いたしました。
結果ですが
「新しくプロジェクトを作成→そこにActiveXオブジェクトを埋め込む→メソッドを呼び出し」
したところ成功しました。
結論から言うとVB.NETのインテリセンス周りがすごく馬鹿だっただけでした。
ご迷惑をおかけいたしました。
69デフォルトの名無しさん:2008/02/27(水) 00:10:24
ObjectARXのCOMインターフェースの使い方がよく分かりません
70デフォルトの名無しさん:2008/02/27(水) 00:15:40
そうですか。で?
71デフォルトの名無しさん:2008/03/24(月) 16:09:54
MFCでActiveXコントロールを作りました。
コンテナはIEで使用します。
1ページで700個ほど貼り付けたのですが重いです。
軽くする方法はありますか?
72デフォルトの名無しさん:2008/03/24(月) 23:02:26
700個貼り付けずに済むように考えた方が早いと思います
73デフォルトの名無しさん:2008/11/05(水) 23:59:27
.NETでActiveXみたいなのは作れないの?相当するものはなに?
74デフォルトの名無しさん:2008/11/06(木) 07:18:28
>>35
COMもVBも勝手にMSが作ったものなのにな。
金儲けにならないから.NETに移行しろよってことだろ
75デフォルトの名無しさん:2008/11/06(木) 08:27:24
OLE2のCOMは結構好きなモデルなんだよね
中間言語噛ませないでバイナリで互換性取るのは今のとここれだけだぜ
UNIXにも欲しいぐらいだがレジストリがな( ´ω`)
76デフォルトの名無しさん:2008/12/02(火) 08:18:19
MFCでActiveXコントロールは作れるのですが
自作のActiveXコントロールをNPAPIに移植したいのですが
日本語でわかりやすいサイトとか本って無いでしょうか?
77デフォルトの名無しさん:2009/04/17(金) 23:32:05
スルー推奨
78デフォルトの名無しさん:2009/08/08(土) 09:26:31
ああ
79デフォルトの名無しさん:2009/09/02(水) 11:20:16
いつの時代だ・・・
80デフォルトの名無しさん:2009/09/02(水) 11:42:21
いつの時代だっていわれても、、今MFCでActiveX作る本ってVC6のころのやつ参照するしかないからな・・

難儀な時代だよ。
81デフォルトの名無しさん
それって、MFCとActiveXを避けてきた人には発生しない問題じゃね?

具体的にはDelphiとかC++ BuilderでVCL使ってたらヨカタ。