• ベストアンサー

VC6 OCXでデザイン時と実行時の判断

こんにちは、honiyonです。  VC6でOCXの作成にチャレンジしています。  コンストラクタに初期化処理を書いたのですが、フォームデザインでそのOCXを貼り付けた際にもコンストラクタが動いてエラーとなってしまいます。  そこで、実行時のみ初期化処理を実行させたいと思うのですが、デザイン時、実行時の判断の仕方が分かりません。  宜しくお願いします(..

質問者が選んだベストアンサー

  • ベストアンサー
  • beckman
  • ベストアンサー率50% (1/2)
回答No.1

COleControl::AmbientUserMode です。 コストラクタ内で使ったことはないですけど大丈夫と思います。

参考URL:
http://msdn2.microsoft.com/ja-JP/library/8hzybc46.aspx
honiyon
質問者

お礼

こんにちは、honiyonです。   ご返信遅くなりすいませんm(_ _)m   使用してみましたが、コンストラクタ内では常に trueになってしまうようです。   仕方ないので、初期化のタイミングをずらすことで解決しました。     有難う御座いました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • VC++のOCXが、VBで登録できません

    ご教示願います。 VC++で、OCXの雛形を作成し(ウィザードにより作成) そのままビルド、カスタム処理の無いOCXを作りました。 そのOCXをVBで「コンポーネントの参照」をしようと思ったのですが 「ActiveXコンポーネントとして登録できない」とエラーが 出てしまいました。 その前に、色々と処理を書いたOCXを登録しようと思っても 同じエラーが出たため、コードが悪いのかと思い ためしに雛形の登録をしてみたのです。 なぜ登録できないのか、何か気づいた方が いらっしゃいましたら、教えて頂けますでしょうか。 ※この設定をしないといけない、等等・・。 宜しくお願い申し上げます。 バージョンは、どちらも6.0です。

  • VB(6.0)で作成したActiveX(ocx)をVBで呼び出す方法

    普通OCXを使用する時は、 デザイン時にフォームにOCXを貼り付け 実行するとそのOCXが表示されると思うのですが 今回の質問はそうではなく デザイン時には何も貼り付けず VC++で言うCreateObjectの様に 実行時にOCXのオブジェクトを生成する事が 出来るのでしょうか?

  • OCXのライセンス

    Visual Basic 6.0 で、他人の作成したユーザOCXを使用しようとしているのですが、「実行時エラー429:このコンポーネントのライセンスが見つかりません。デザイン環境でこの機能を使うために必要なライセンスがありません。」と、エラーが表示されます。 現在、プロジェクトファイルのあるディレクトリに、OCXとLICファイルをおいているのですが…。 OCXの登録はされているはずなのですが、念のための登録確認方法と、ライセンス登録のための手順を教えていただけないでしょうか?

  • VCで作ったOCXをIEで表示

    こんにちは、honiyonです。  VC++6でOCXを作成し、IEに表示させようとしたのですが、  ×マークしか出てきません。  手順は以下の通りです。  1.VC++6で MFC ActiveX ControlWizardで標準値のままプロジェクト作成。  2.ビルド  3.念の為手動で regsvr32で登録  4. odlファイルでclassidを確認。   ※以下の位置を確認しました。 // CDDE_OCX7Ctrl のクラス情報 [ uuid(8BB5BBFC-D7FE-4BC2-9652-75F22695833C), helpstring("TEST Control"), control ] coclass TEST  5.HTML記述 <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <OBJECT classid="clsid:8BB5BBFC-D7FE-4BC2-9652-75F22695833C" id="TEST" type="application/x-oleobject" width=100 height=100></OBJECT> </BODY> </HTML>  これでIEで表示させると×マークになってしまいます。  アドオンの管理で確認すると確かに読み込まれているのですが...。  因みにメソッドやプロパティも作成してみましたが、実行出来ません。(サポートされていないメソッド云々と怒られます)  表示できない理由を確認する方法はないでしょうか?  また、お気づきの点がありましたら教えてください。  宜しくお願いします(..   

  • VC実行ファイルについて

    VC++でコンパイルした実行ファイルをVC++がインストールされていないパソコンで動作させるとプッシュボタン等すべてのコントロールが表示されません。 後、mfc42d.dll、mfcvrtd.dllが無いと起動もできません。 コンパイル時に必要なdllやocxを実行ファイルにリンクさせて、他のパソコンで動作させる時には実行ファイルだけインストールすれば動作するようにすることは出来ないのでしょうか? わかる方おりましたら よろしくお願い致します。

  • ActiveXコンポーネントのデザイン部分について

    VB6でOCXを作成しましたが、デザイン(表示)部分でわからないことがあります。 作成したOCXを別のプログラムでコンポーネント参照した際に、 通常タイマーならタイマーの画像が、ボタンならボタン形状のツールバーが表示されるのですが、デフォルト画像(表現しにくいのですが青のタスクバーに4つのボタンと鉛筆マーク)が表示されます。 これをオリジナルデザインにすることは可能でしょうか? また、使用する際にタイマーイベントのようにデザイン時にはコンポーネントが見えていて、実行時には見えなくする方法が知りたいです。今は実行させると、作成したフォームが丸見え状態です。 あとVB6で作成したコンポーネントはVisualStudioの他のバージョン(2003や2005)でも使えるのでしょうか? 最近ActiveXコンポーネントの作成がわかり喜んでいたのですが、つめが甘いのかデザイン部でつまずいています。ActiveXコンポーネントは古い技術でしょうか。 ActiveXコンポーネントについて詳しく書かれている書籍はありますか? できればVB6を希望しますが、VC6でも構いません。

  • MCI32.ocxがあるのにMCI32.ocxが無い・・・?

    MCI32.ocxがあるのにMCI32.ocxが無い・・・? とあるVisualBesic6.0にて製作されたフリーソフトを使っているのですが管理者としてプログラムを実行すると何故かMCI32.ocxがあるにも関わらず 『コンポーネント'MCI32.ocx'が適切に登録されていません。ファイルが存在しないかあるいは不正です』 とエラー文が出てきて強制終了してしまいます。 管理者としてではなく普通に起動したらそのエラーは出ないのですが今度は他のファイルから読み込む時に 『実行時エラー'75' パス名が無効です。』 と出てきてしまいます。 この場合どうすれば良いのでしょうか……? OSはvistaです

  • デザイン時のVisible=Falseは実行時に変更できない?

    VB2008です。 フォームデザイン時に、コントロールのVisibleをFalseに設定していると、実行時にTrueに設定してもコントロールが見えません。(実行時エラーも出ません。) 私の環境では、ほぼすべてのコントロールが同じ挙動をします。 もちろん、デザイン時にVisibleをTrueにしておいて、実行時にコードでFalseにすると見えなくなりますし、Trueを与えてやると再度見えるようになります。 これは、言語の仕様なのでしょうか。

  • VC++2010での開発について

    『Microsoft Visual C++ 2010 Express』をインストールして、 Windowsアプリケーションを作成したのですが・・・ 初期作成されたヘッダファイル(Form1.h)にいろいろとコードがかかれていました! 昔(VC6)時代が最後だったので少しびっくりしたのですが、 cppファイルに書いていたような内容がhファイルにあるので?となり質問しました。 質問内容 1..NETになってからは、hファイルにイベントやコンストラクタなどの処理は記述するものなのでしょうか? 2.新規関数を作成する場合はどうするの? 3.VC++ 2010を勉強するにあたって、参考になる『本』『サイト』はありますでしょうか? よろしくお願いいたします。

  • CSMETE32.OCXが読み込めない

    NEC VALUESTAR NX VC35D/5、OS=Windows98です。 あるソフトを使用していて、データをバックアップするメニューを選択した際以下の表示が出ました。 「実行時エラー 367  カスタムコントロール'CSMETE32.OCX'が読み込めません  または登録できません」 OKボタンを押すとソフト自体が終了してしまいます。 Windowsを再度インストールするなど大掛かりな方法でしか 回避できないエラーでしょうか? 回答をよろしくお願い致します。