プロが教えるわが家の防犯対策術!

エディットコントロールへの表示

C++/MFCでエディットコントロールに文字が表示されないことで困っています。
たとえば、ダイアログベースのアプリケーションで
エディットコントロールm_editとボタンを貼り付け、
...Dlg::OnBnClickedButton()
{
m_edit.SetWindowTextA("Start");
// 何らかの処理
m_edit.SetWindowTextA("End");
}
と実装した場合、
コンパイルして実行すると、Startは表示されず、
処理後にEndだけが表示されてしまいます。
最初にStartを表示させ、処理後にEndを表示させる方法を
ご存知の方いらっしゃらないでしょうか。

よろしくお願いいたします。

ちなみに、
OS:Windows XP Home
開発環境:Visual Studio 2005 Standard Edition
言語:C++/MFC
です。

A 回答 (2件)

m_edit.UpdateWindow() 入れれば表示されるはず

    • good
    • 0
この回答へのお礼

koi1234さん、
ご返答いただき、まことにありがとうございます。

早速、試してみたところ、うまく表示されました!
こんな簡単なことだったとは…。

ありがとうございました。

お礼日時:2010/02/05 12:45

>...Dlg::OnBnClickedButton()


>{
>m_edit.SetWindowTextA("Start");
>// 何らかの処理
>m_edit.SetWindowTextA("End");
>}

この「何らかの処理」が数十秒もかかったりするような処理だった場合…
処理中にだいあろぐに対して操作を行おうとすると、OSにより「(応答なし)」の称号を付与されるかも知れません。
ということで、そういう処理はワーカースレッド作ってそちらで処理するか、
自分でメッセージ回すようにする必要があります。
    • good
    • 0
この回答へのお礼

Wr5さん、
コメントありがとうございます。

今回の処理は大体5~10秒程度の処理でしたので、
koi1234さんにおしえていただいた手続きで
特に使い勝手が悪いことはありませんでした。

ただ今後このような処理を実装するときは
コメントいただいたことも考慮したいと思います。

ありがとうございました。

お礼日時:2010/02/05 12:59

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!