
現在VC++6.0、MFC、ダイアログベースでアプリケーションの作成を行っているのですが、長いことつまづいてしまっているので質問させていただきます。
もともとあるアプリケーションに機能を追加、ということを行っているのですが、リソースで作ったボタンとエディットボックスが、ダイアログの最小化や最大化を行うと再描画されずに消えてしまいます。しかし、元々作ってあったボタンやエディットボックスはそのまま正常にのこっています。このアプリケーションの作成者には連絡することができず、ネットでも情報を探しましたが、解決しません。これを解決するにはどういった修正が必要でしょうか? 知識不足のため説明不足や、説明に間違いがあるかもしれませんが、ご教授願えますと幸いです。
No.1ベストアンサー
- 回答日時:
こんばんは。
MFCのダイアログベースを作成して、エディットx2、ボタンx2で実験してみました。
一応再現? らしき事は出来たのですが、処方箋になるかどうかは分かりません。
エディット・ボタンにOnPaint()関数が存在し、中身を処理していない時等は質問内容の様なトラブルが起こったりします。
↓此れが犯人なのでは?
void CTroubleButton::OnPaint()
{
CPaintDC dc(this); // 描画用のデバイス コンテキスト
// TODO: この位置にメッセージ ハンドラ用のコードを追加してください
// 描画用メッセージとして CButton::OnPaint() を呼び出してはいけません
}
既存(正常な)のボタン・エディットに、上記の関数が存在しなくて、トラブルを起こしている方のボタン・エディットに、上記の関数が存在しているのであるならば、ClassWizardで上記関数を削って見ては如何でしょう(無ければ普通に表示されます)。
上記関数内に処理を入れている場合は、再描画の処理を書き忘れているのでは無いでしょうか。それ以外のケースでは、私には分かりません・・・。
返答が遅れまして申し訳ありません。
おかげさまでどうにかこうにか解決することができました。
再描画をそのボタンだけ行っていなかったので、そこで再描画処理を行いましたら、解決しました。アドバイス、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MFCでOnPaintのタイミング
-
VB6,リストボックスの特定行の...
-
word
-
VC++プログラムをつかったBMP画...
-
Wave波形の描画について
-
NVIDIAのシェーダーキャッシュ
-
GDI+で高速な描画
-
TextBoxに文字を書いても表示さ...
-
[VB.net] DataGridViewの列ヘッ...
-
c++ ダブルバッファリング、以...
-
最前面に無理やりフォームを持...
-
gnuplotで3次元の円
-
SHGetFileInfoでアイコンが取得...
-
VBAにGDI+を参照させる方法
-
エクセルで作った新しいウイン...
-
コンボボックス内の文字サイズ変更
-
グラフの交点の求め方(Excel)
-
コントロールの書式設定で、“コ...
-
エクセルのコントロールツール...
-
「アイテムは収集されました」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Minecraft 統合版(PC)の描画距...
-
[VB.net] DataGridViewの列ヘッ...
-
word
-
TextBoxに文字を書いても表示さ...
-
panelのスクロール表示について
-
google Colabでmatplotlibの描...
-
MFCでOnPaintのタイミング
-
CStaticコントロールの静的イメ...
-
VBAにGDI+を参照させる方法
-
Form1 Load で実行されない。
-
InvalidateRectの使い方について
-
CScrollViewの使用方法について
-
GDI+について
-
VC++プログラムをつかったBMP画...
-
ウインドウサイズを変更しても...
-
VB6,リストボックスの特定行の...
-
タブをオーナードローすると、...
-
ビットマップを表示させる(MFC)
-
UpdateData( FALSE); による文...
-
C++にて、塗りつぶされた円を描...
おすすめ情報