掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
描画onPaintで追加の重ね描きをする方法は (ID:72423)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
WindowsXp VC6.0 MFC 環境です 描画作成のコードを作っています。 現時点では マウス操作 void CChildView::OnMouseMove( UINT nFlags, CPoint point ) {//略 //描画内容に変化をを要すると Invalidate(FALSE); //CWnd::OnMouseMove( nFlags, point );//在ってもなくてもOK,なんの役割するか?未勉強 }// endof void CChildView::OnMouseMove void CChildView::OnLButtonUp( UINT nFlags, CPoint point ) {//途中略 Invalidate(FALSE);//このコードでOnPaintを呼んでいるみたい }//end of CChildView::OnLButtonUp あるいは CParameterDlg::CParameterDlg(CWnd* pParent /*=NULL*/) : CDialog(CParameterDlg::IDD, pParent) {// ここでも Invalidate(FALSE); //がある } でColorDialogを呼ぶ(新たな場所の描画線の色を変える目的に) などして その都度 void CChildView::OnPaint() { // TODO: Add your message handler code here CPaintDC dc(this); // device context for painting CMemDC memDC; memDC.CreateDIBitmap( m_imageSiH, m_imageSiV );// creat an image area in the window memDC.FillSolidRect(0, 0, m_imageSiH, m_imageSiV, m_grdColor); //ground color //略 // Do not call in the original Why?? for painting messages // CWnd::OnPaint(); // CChildView:: この終わりがよくわからない 現行は削除 } 内で表示を書き換えています。 これを 一部書き終えたら 既存で書いたものに一部分を上書きできるように 変えたいのです。 質問は Invalidate(FALSE)は再描画するコードで”背景を一旦塗りつぶす必要が無い時に呼ぶ” と理解していますが、 前の描画内容の一部をそのままで描画するには どういう方法があるのでしょうか? 簡単なコードを示したいのですが OnPaint()のどれがエッセンスか 分かりにくく どのようなところを取り出すと良いか 分かりかねている状態です なお 実際の絵の最小見本はHPの動画∞です。これは一筆の図ですが、∞∞のような2筆の 色別でloopを描きたいのです。 よろしく ご助言をおねがいします
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.