
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんばんは。
一つのCFormViewの中の右上と言う事でしょうか。
恐らく、OnEraseBkgnd()辺りが悪さをしているのではないでしょうか。
その他、座標計算が間違っている事も考えられます。
取り敢えずは、OnEraseBkgnd()を削って見ては如何でしょう。
以下はOnDraw()のみオーバーライドして確認しています。参考になれば。
void CMyFormView::OnDraw(CDC* pDC)
{
// TODO: ここに特定なコードを追加するか、もしくは基本クラスを呼び出してください。
RECT rc = {0};
//クライアント領域を取る
this->GetClientRect(&rc);
//座標を右上に設定
rc.left = rc.right / 2;
rc.bottom/= 2;
//緑色で塗ってみる
pDC->FillSolidRect(&rc, 0xff00);
}
この回答へのお礼
お礼日時:2009/08/10 22:55
ありがとうございます。
最初はOnDraw()の中で塗りつぶしてたんですけど、うまくいかないので、
OnEraseBkgnd()をオーバーライドしてみました。
4分割でうまくいかないので、2分割でやってみると、これはうまくいきました。
FillSolidRect()に渡すパラメータがおかしいのかなぁ。
何度も見直したんですけど。。。
ちなみに塗りつぶす順番は、左上→右上→左下→右下です。
もう少し調べてみます。
No.1
- 回答日時:
>InvalidateRect(NULL, TRUE)の後のOnEraseBkgnd()とOnDraw()で、
>FillSolidRect()で右上だけ塗りつぶしても色が変わりません。
InvalidateRect()で無効化したウィンドウはOnPaint()で描画します。(言い換えれば、InvalidateRect()するとOnPaint()が発生し、OnPaint()の処理を書き換えずにデフォルトの処理のままにすると、デフォルトの背景しか描画されず、OnPaint()以外で行った描画はすべて「無かった事」になります)
また、OnEraseBkgnd()は、ウィンドウをリサイズした際にしか呼ばれません。
さらに
http://www.bnote.net/sdk_mfc/mfc1.shtml
には
「SDIやMDIアプリケーションの描画処理は OnDraw() で行い(印刷や印刷プレビューも)。
ダイアログベースでは OnPaint()で描画処理を行うようです。 」
と書いてあります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[VB.net] DataGridViewの列ヘッ...
-
描画を透明にする方法
-
VC++2010(MFC)での描画
-
他のプロセスの描画領域を再描画
-
VB6,リストボックスの特定行の...
-
アプリケーションのデザイン
-
c++ ダブルバッファリング、以...
-
UpdateData( FALSE); による文...
-
google Colabでmatplotlibの描...
-
InvalidateRectの使い方について
-
panelのスクロール表示について
-
Minecraft 統合版(PC)の描画距...
-
エクセルで作った新しいウイン...
-
「アイテムは収集されました」...
-
グラフの交点の求め方(Excel)
-
検索の画面がでなくなってしま...
-
コントロールの書式設定で、“コ...
-
Sendkeysのタイミング
-
ダイアログボックスのボタンコ...
-
コンボボックス内の文字サイズ変更
マンスリーランキングこのカテゴリの人気マンスリー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...
おすすめ情報