
MFCでOCXを利用する方法は、MFCのウィザードに従ってActiveXを使うを選び、
AfxEnableControlContainer();
を書けば良いとわかり、実際に使用出来ています。
さて、ところで、Win32でOCXを利用する方法がありましたら、是非、教えて下さい。
いつも、リソース.rcの作成だけはVC++6.0を使っていているのですが、ダイアログにOCXを貼り付けてCTRL+TでテストするとそのOCXは正常に動く!だけに、これがwin32で使えないのはもったいないような気がしてしまうのです。
よろしくお願い致します。
No.4ベストアンサー
- 回答日時:
とりあえず見つけてみました。
MFCを使わずにFlash.ocxを使うサンプル。
http://www.denpa.org/~go/denpa/200304/from11.html
ただし、これもATLを使っているのでWin32SDKのみで作っているわけではありません。
これを見て簡単と思うか難しいと思うかはgoonejpさんしだいかと。
ありがとうございます。
cl atlflash.cpp /link atl.libですね!
いつも、メーリングリストやいろいろなところでパソコンに関する質問をする度に、世界は広くて、すごい人たちがいっぱい居ることに感動させられます。
今回は、日本からの情報で感動させられました。
海外でも、私と同じ質問をしている人を10人くらい見かけましたので、まさにそんな私たちのような者にとって福音です!感謝します。
また、これを機に、他の方からご指摘していただいたような点も、機会があったら勉強してみたいと思います。フラッシュは表示できましたが、やはり、表示する以上にいろいろ出来たほうがいいですから…。
ありがとうございました。
No.3
- 回答日時:
>Using COM objects from MFCと題した次のページには、
>「visibleなCOMコントロールの使用は、簡単!」と書いて
>あるようなのですが、私には???で、わかりませんでした。
タイトルの、"from MFC"はどこに行ったんですか?
どう見ても、MFCからの利用は簡単といってるんですけど。
それにこのページ、MFCを使用した視覚的ではないCOMオブジェクトの使用法なんですけど。
翻訳サイトでも使ってちゃんと訳して読んでください。
http://www.nifty.com/globalgate/
ちなみに、ここなんですが、
>AfxEnableControlContainer();
>を書けば良いとわかり、実際に使用出来ています。
って、ActiveXコントロールを表示しただけですか?
ソース中からプロパティを設定したりとかしましたか?メソッド呼びましたか?
ただ貼り付けて表示されただけで使えたと思ってません?イベントはどうしました?
urlの内容で、ClassWizardでCOMのラッパークラスを
作成するとあるのはわかりますか?
これはMFCでActiveXコントロールを使用するのでも
必要な作業なんですけど。
MFCを利用してActiveXコントロールを本当に使っていたんですか?
>ちょっとした簡単なプログラムに、フラッシュを
>貼り付けて表示できたら素敵なことなので、
>皆さん、やってみたいと思う人が多いような気が
>するのですが…。
ものすごい矛盾したことを書いていることに気づいていますか?
私は、ActiveXコントロール使用するアプリを、MFCを使わないでC++で作成すること自体が簡単ではないといっているのです。
簡単に使いたいのであれば、MFCを使ったり、最初からActiveXコントロールをサポートしているVBなどを使えばいいんですから。
その、「簡単ではない」部分を吸収しているのがMFCであり、VBなのですから。
No.2
- 回答日時:
>目標を絞りますと、「winmain.cppの一つのファイルと
>リソース.rc、makefileだけから構成される、
>ocxを使う簡単なプログラムを、VC++ではない
>エディタでプログラムを書きたい!」という
>ことなので、VCのマクロやMFC、あるいは、
>その他を使っても結構です。
簡単なプログラムでは不可能です。
戻りますけど、COMってわかりますか?
インターフェイスってわかりますか?
次に挙げるものがAciveXコントロール側の必要なインターフェイスです。つまり、最低限これらに対する呼び出し元の処理が必要になります(全部ではないですが)。イベントをサポートするのならさらに必要です。
・IUnknown
・IOleObject
・IOleInPlaceObject
・IOleInPlaceActiveObject
・IOleControl
・IDataObject
・IViewObject2
・IRunnableObject
・IDispatch
・IConnectionPointContainer
・ISpecifyPropertyPages
・IProvideClassInfo
・何らかの永続記憶用インターフェース
これらの意味がわからないようでしたらあきらめてください。
ちなみに、私もMFCやATL等を使わないとC++からActiveXコントロールは使えません。
それでもチャレンジしたいのでしたら、おそらくこちらの本には書かれているかと
Inside OLE
http://www.microsoft.com/japan/info/press/JPN_Vi …
購入してチャレンジしてみてはいかがですか?
>結構、似たようなことをやりたい!と考える人は多いと思いますので、同好の方よろしくお願い致します。
あまりいないと思います。大変だとわかっている人のほうが多いので。
この回答への補足
すみません。さらに目標を絞りますと、「フラッシュ(flash.ocx)をダイアログに貼り付けて表示したい」のです。ただ、フラッシュを表示するだけです。
ちょっとした簡単なプログラムに、フラッシュを貼り付けて表示できたら素敵なことなので、皆さん、やってみたいと思う人が多いような気がするのですが…。
Using COM objects from MFCと題した次のページには、「visibleなCOMコントロールの使用は、簡単!」と書いてあるようなのですが、私には???で、わかりませんでした。
http://www.murrayc.com/learning/windows/usecomfr …
是非、フラッシュをダイアログに表示してみたい!と、この問いかけをきっかけに欲望を起こされた方でも結構です。(^^;)
ゆっくりとお待ちしておりますので、よろしくお願い致します。
No.1
- 回答日時:
まず、WIN32って何を指して言ってるんですか?
Win32ってWin32APIを使ったMFCを使わないプログラムのことをさしています?
>さて、ところで、Win32でOCXを利用する方法がありましたら、是非、教えて下さい。
まず結論からいうと、できます。Win32SDKで書かれたMFCで使えるのですから当然ですよね。
ただし、使い方は非常に複雑です。
OCXとやり取りをするための取り決めをすべて自前で実装する必要があります。
まず、COMの知識は必須です。必要なCOMのインターフェイスも
かなりの数にのぼります。
というような、かなり大変なことをMFCが見えないところで処理をしてくれているのでMFCでは簡単にOCXが使えます。
デザインのテストでは、VC++がそのあたりを処理してくれているので表示はできるということです。
この回答への補足
目標を絞りますと、「winmain.cppの一つのファイルとリソース.rc、makefileだけから構成される、ocxを使う簡単なプログラムを、VC++ではないエディタでプログラムを書きたい!」ということなので、VCのマクロやMFC、あるいは、その他を使っても結構です。
winmain.cppは、多少、長くなっても結構です。
どなたか、そういうことを試みて成功している人がいらっしゃいましたら、情報をお願い致します。
結構、似たようなことをやりたい!と考える人は多いと思いますので、同好の方よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- プリンタ・スキャナー Brother MFC-7460DNの一時停止解除について 1 2022/12/03 12:38
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- 環境・エネルギー資源 家庭用発電機の事ですが。 5 2023/06/01 10:35
- 化学 水ガラスの取り扱いについて 1 2022/04/10 17:22
- 日用品・生活雑貨 マグネットシートの便利な活用方法を教えてください。 1 2023/05/27 22:43
- その他(プログラミング・Web制作) プログラムの起動、利用について、使用期間を設定する方法 3 2023/08/06 21:03
- その他(インターネット接続・インフラ) IPアドレスについて 2 2022/10/23 14:48
- タブレット 子供のタブレットのペアレンタルコントロール 1 2023/04/14 14:34
- 飲み物・水・お茶 使用済の珈琲豆の再利用方法を教えて下さい。 どのようにして、何として使えますか。 使用済の紅茶葉の再 3 2022/12/30 14:36
- ヤフオク! ヤフーアカウントについての質問です。 「不正利用が疑われる操作もしくは行為が検知されたため、利用規約 5 2022/08/29 20:22
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
'ckbl' コントロールは作成され...
-
ExcelVBAでListViewが使用できない
-
エクセルVBAでオプションボタン...
-
カメラスクロールするのを動画...
-
Excel VBA で Richtextboxを使...
-
VBA ユーザーフォームの Keypre...
-
EXCELでactivexコントロールを...
-
vb.netで画面のコントロールId...
-
chr関数の呼び出しで「プロ...
-
エクセル・VBA CheckBoxのオブ...
-
チェックボックスをオンにした...
-
VB.NET開発。ラジオボタンとコ...
-
変数をコントロール型で使用す...
-
vbaマクロで、色の設定ダイアロ...
-
Visual Basic 6.0 でPanelを使...
-
ユーザーフォームにランプをつ...
-
コントロールを移動できない
-
C# ユーザコントロール内のボタ...
-
全てのオブジェクトのプロパテ...
-
Excel VBA 動的に作成したチェ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELでactivexコントロールを...
-
エクセル・VBA CheckBoxのオブ...
-
カメラスクロールするのを動画...
-
エクセルVBAでオプションボタン...
-
チェックボックスをオンにした...
-
VBA ユーザーフォームの Keypre...
-
chr関数の呼び出しで「プロ...
-
'ckbl' コントロールは作成され...
-
ExcelVBAでListViewが使用できない
-
全てのオブジェクトのプロパテ...
-
vb.netで画面のコントロールId...
-
間違えて配置してしまったコン...
-
変数をコントロール型で使用す...
-
エクセル コントロールツール...
-
ユーザーフォームで動的(Me.Con...
-
OCXって何ですか?
-
C#で角が丸いテキストボックス
-
Groupboxの配下のコントロール...
-
Labelコントロールの(左右)余...
-
excel vbaでユーザーフォームに...
おすすめ情報