ActiveXのMsCommとリッチエディットの相性

[戻る]
無謀なチャレンジャー 2007/03/13(火) 16:59:10
ActiveXのMsCommを使ってVC++6でシリアル通信プログラムを作っていて、
通信は何とか出来るところまで来ました。そこで受信データをエディットボックスに
出力していたのですが、フォントサイズ、色、背景色等を変えたい為にリッチエディット
に出力しようとダイヤログ上に貼り付け実行したところコンパイル/リンク作業はエラー
が出ないのですが、ダイヤログが画面に立ち上がって出てきません。

ちなみに、何もコードを書かずに、ダイヤログ上に
(1)「MsComm」と「リッチエディット」オブジェクト
(2)「MsComm」と「エディットボックス」オブジェクト

を貼り付けて、コンパイルしたところ(1)は同様の問題の症状がでますが、(1)は
問題なくダイヤログが立ち上がってきます。

ActiveXのMsCommとリッチエディットの相性は悪いのでしょうか?
回避する手段ご存知でしょうか?
宜しくお願いします。

開発環境
OS:WindowsXP(SP2)
言語:VC++6(VB6でSP6を当てたのでSP6?)

無謀なチャレンジャー 2007/03/13(火) 17:05:16
間違い箇所があったので修正します。
>コンパイルしたところ(1)は同様の問題の症状がでますが、(1)は
>問題なくダイヤログが立ち上がってきます。


>コンパイルしたところ(1)は同様の問題の症状がでますが、(2)は
>問題なくダイヤログが立ち上がってきます。
※MsCommとリッチエディトボックスを貼り付けたときは、画面(VBで言うところのフォー
ム)が立ち上がってこない。

2007/03/13(火) 23:25:37
AfxInitRichEdit()
あたりが抜けていたりとかしませんか?
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200508/05080013.txt

これだとMSCommとの相性は関係ないかもしれません。

無謀なチャレンジャー 2007/03/14(水) 08:51:20
[[解決]]
に 様 ご指摘有難うございました。
MSCommを張り付けないで、リッチエディット単体で貼り付けてみましたが、画面は立ち上
がってきませんでした。MSCommとの相性は関係ないですね。
 参照先に「初期化処理でAfxInitRichEdit();」とありましたので、
// CMscomApp クラスの初期化

BOOL C***App::InitInstance()
{
    AfxEnableControlContainer();

    // 標準的な初期化処理
    // もしこれらの機能を使用せず、実行ファイルのサイズを小さくしたけ
    //  れば以下の特定の初期化ルーチンの中から不必要なものを削除して
    //  ください。
    AfxInitRichEdit(); //←ここに追加記述

と記述したところ、問題なく画面が立ち上がってきました。
アドバイスありがとうございました。

古いスレッドには追加発言できません。