ダイアログを非表示にすると画面がちらつく問題について


てれこん  2005-12-07 17:12:33  No: 59897  IP: 192.*.*.*

初めまして。表題の件についてご質問させてください。

現在、VC++でMFCを使わないGUIアプリを作っています。
AとB二つのダイアログがあり(Aは複数のタブがあるダイアログ)、Aダイアログ上のボタンを押下するとBのダイアログが表示され、そのときAは非表示になるようにしたいのですが、

ShowWindow( hDlg, SW_HIDE );      //hDlgはAのウィンドウハンドル

とやると、Aのひとつのタブのみが非表示になり(一面灰色になります)、Aダイアログそのものは非表示になりませんでした。
上で指定したハンドルの親ハンドルを取ればAダイアログそのものが非表示になると考え、次のように書き換えました。

ShowWindow( GetParent(hDlg), SW_HIDE );

こうすると、Aダイアログは非表示になるようになりましたが、非表示になる瞬間画面が一瞬ちらついてしまいます。
このちらつきを無くしたいのですが、どうすればいいのでしょうか?

拙い説明でわかりにくいかもしれませんが、どうか宜しくお願いします。m(__)m

編集 削除
Toshi  2005-12-09 11:50:13  No: 59898  IP: 192.*.*.*

>ShowWindow( hDlg, SW_HIDE );      //hDlgはAのウィンドウハンドル
>とやると、Aのひとつのタブのみが非表示になり(一面灰色になります)、
>Aダイアログそのものは非表示になりませんでした。
>上で指定したハンドルの親ハンドルを取ればAダイアログそのものが
>非表示になると考え、次のように書き換えました。

と書きたくなる気持ちも分かりますが、実はこの情報って問題解決にも、
混乱を避ける為にも全く必要ない情報です。それよりも、

>ShowWindow( GetParent(hDlg), SW_HIDE );
>こうすると、Aダイアログは非表示になるようになりましたが、
>非表示になる瞬間画面が一瞬ちらついてしまいます。
>このちらつきを無くしたいのですが、どうすればいいのでしょうか?

この部分をもっと詳細に記載した方がアドバイスを受けやすいと思いますよ。
ShowWindow()をどのタイミングで行っているのかとか、画面がチラ付くって
どの画面が?とか、他に関連した処理は何かしてないかとか・・・

編集 削除