
現在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タブコントロールのグラデー...
-
VB6,リストボックスの特定行の...
-
[VB.net] DataGridViewの列ヘッ...
-
pset関数について
-
VC++2010(MFC)での描画
-
ウインドウサイズを変更しても...
-
他のプロセスの描画領域を再描画
-
word
-
アプリケーションのデザイン
-
UpdateData( FALSE); による文...
-
c++ ダブルバッファリング、以...
-
ダイアログベースの再描画について
-
描画を透明にする方法
-
逐次的なグラフ表示の方法
-
InvalidateRectの使い方について
-
panelのスクロール表示について
-
.net の ImageList について
-
CStaticコントロールの静的イメ...
-
「アイテムは収集されました」...
-
エクセルで作った新しいウイン...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Minecraft 統合版(PC)の描画距...
-
[VB.net] DataGridViewの列ヘッ...
-
word
-
google Colabでmatplotlibの描...
-
panelのスクロール表示について
-
VB.netでのライン描画方法がわ...
-
VB6,リストボックスの特定行の...
-
UpdateData( FALSE); による文...
-
TextBoxに文字を書いても表示さ...
-
CStaticコントロールの静的イメ...
-
VBAにGDI+を参照させる方法
-
MFCでOnPaintのタイミング
-
InvalidateRectの使い方について
-
VC++プログラムをつかったBMP画...
-
GetGlyphOutline() ご利用経験...
-
NVIDIAのシェーダーキャッシュ
-
Form1 Load で実行されない。
-
FlexGridの一部のみ表示を更新...
-
C#のタブコントロールについて...
-
WM_SIZEとWM_SIZINGの違い (Win...
おすすめ情報