DialogWindowが重なっても消えない描画状態にするには?

解決


般若  URL  2013-07-02 01:30:31  No: 73742  IP: [192.*.*.*]

環境WindowsXP,VC++6.0  (古くてすみません)
//void CChildView::OnPaint()内で  描画をしています。
//dc.BitBlt(0, 0, m_imageSiH, m_imageSiV, &memDC, 0, 0, SRCCOPY);これで画面を表出しています。
//void CChildView::OnParameterSet()でモードレスのDialogを、メニューの選択で表示します。
現象:Dialogを移動し、描画内に重ねて、再度外すと、描画したのが消えるのと消えないものがあります。消えないものはOnPaintではじめの方で描いたもので
消えるのはその後半で重ね描きしたものです。
また  絵柄の脇に、dc.TextOut(  m_imageSiH, strYp, str);でメッセージを書き込んでいるのですが  それも消える場合と消えない場合があります。
希望としては消えないようにしたいのですが  どのようにしたら良いでしょうか?助言をおねがいします

編集    削除
般若  2013-07-02 16:56:36  No: 73743  IP: [192.*.*.*]

環境追加MFC使用
現状のOnPaint()コードが長いので  ここで示すことが難しいので助言が出来難いと思いますが、どんなことを示せれば良いか  教えて頂ければ出します。

OnPaint()の最後に以下があってもなくても  変わらないようですが
どういう役割りで  標準はどうすべきでしょうか
// CWnd::OnPaint(); 

描画のコードには上のdc.BitBlt(  の他にも以下のコードがあるのですが、これもOnPaint()の最後にいれると
//  Invalidate(FALSE);// これをいれるとDialogの移動中に  頻繁な書き換えが起こる(ちらつく)。Invalidate();でも同じにちらつきます。

編集    削除
kumatti  2013-07-02 20:02:15  No: 73744  IP: [192.*.*.*]

> 現状のOnPaint()コードが長いので  ここで示すことが難しいので

Gist に載せてそのリンク先を示すとか。

編集    削除
はんにゃ  2013-07-03 00:29:45  No: 73745  IP: [192.*.*.*]

助言  ありがとうございます
確かに以前  どこかのFreeWebサーバに載せたことあります。
いまでは  どこか不明です
それで  GISTとはどこのURLでしょうか  検索の不十分で該当がみつからないのです。多分英語版でしょうね。日本語が良いけど。英語版でもします
はんにゃ

編集    削除
瀬戸っぷ  2013-07-03 01:50:49  No: 73746  IP: [192.*.*.*]

Gitのタイプミスなんじゃないですかね?

無料で使えるGitリポジトリもいくつかあるみたいですけど。
# Git自体使ったことないので不明。(Subversionで済んでいるし)

編集    削除
yoh2  2013-07-03 06:53:02  No: 73747  IP: [192.*.*.*]

脇道に逸れますが、GistはGitHubのサービスのひとつで、コード片とか
テキストとか貼り付けできるPastebin的なものです。
https://gist.github.com/

編集    削除
はんにゃ  2013-07-06 17:24:23  No: 73748  IP: [192.*.*.*]

ひとまず  文字の表示は消えなくなりました。

dc.TextOut( m_imageSiH,  m_imageSiV, "Here passed");
を当該らしい個所にいれて  どこで消えるのと消えないかの境をみつけて
その境での違いを知りました。
  
コードの処理は
if( GetAsyncKeyState('S') & 0x8000 || GetAsyncKeyState(VK_LBUTTON) & 0x8000)// force to stop animation drawing 
{   
  keyS_M = 0; 
  dc.BitBlt(0, 0, m_imageSiH, m_imageSiV, &memDC, 0, 0, SRCCOPY);
  break; 
}   

上のdc.BitBlt(0,  を  描画が終わった  すーと後のOnPaint()の最後に移動させると表示文字が消えない  ことがわかりました。
 
みなさんのご検討ありがとうございました。
まだ  文字以外に円弧の描画自体は消えるのでそれは  描画操作とも関係するので別に質問することにします。

なお、Freeのコードファイルを閲覧(DLも)出来るサイトが引き続き教えてください。

編集    削除