アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在VC++6.0、MFC、ダイアログベースでアプリケーションの作成を行っているのですが、長いことつまづいてしまっているので質問させていただきます。

もともとあるアプリケーションに機能を追加、ということを行っているのですが、リソースで作ったボタンとエディットボックスが、ダイアログの最小化や最大化を行うと再描画されずに消えてしまいます。しかし、元々作ってあったボタンやエディットボックスはそのまま正常にのこっています。このアプリケーションの作成者には連絡することができず、ネットでも情報を探しましたが、解決しません。これを解決するにはどういった修正が必要でしょうか? 知識不足のため説明不足や、説明に間違いがあるかもしれませんが、ご教授願えますと幸いです。

A 回答 (1件)

 こんばんは。



 MFCのダイアログベースを作成して、エディットx2、ボタンx2で実験してみました。
 一応再現? らしき事は出来たのですが、処方箋になるかどうかは分かりません。

 エディット・ボタンにOnPaint()関数が存在し、中身を処理していない時等は質問内容の様なトラブルが起こったりします。

↓此れが犯人なのでは?
void CTroubleButton::OnPaint()
{
CPaintDC dc(this); // 描画用のデバイス コンテキスト

// TODO: この位置にメッセージ ハンドラ用のコードを追加してください

// 描画用メッセージとして CButton::OnPaint() を呼び出してはいけません
}

 既存(正常な)のボタン・エディットに、上記の関数が存在しなくて、トラブルを起こしている方のボタン・エディットに、上記の関数が存在しているのであるならば、ClassWizardで上記関数を削って見ては如何でしょう(無ければ普通に表示されます)。

 上記関数内に処理を入れている場合は、再描画の処理を書き忘れているのでは無いでしょうか。それ以外のケースでは、私には分かりません・・・。
    • good
    • 0
この回答へのお礼

返答が遅れまして申し訳ありません。
おかげさまでどうにかこうにか解決することができました。
再描画をそのボタンだけ行っていなかったので、そこで再描画処理を行いましたら、解決しました。アドバイス、ありがとうございました。

お礼日時:2008/11/07 10:32

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