私は、今日の標準によって古い技術を使用していることを最初に言いましょう!これは、Visual Studio 2005のMFCでWinXPで実行されます。 (もしそれが '壊れていれば.... ;-))MFC CListCtrlが最小化復元後に表示されない
私は2つのタブを持つCTabCtrlを持つダイアログベースのアプリケーションを持っています。それぞれにはCListCtrlが含まれています。これらは通常の状況下では完全に機能します。それらは正しく配置され、必要に応じて表示および非表示になります。最初にアプリケーションを開くと、表示選択が正しいことになります。ダイアログを最小化して復元すると、CList Ctrlは表示されず、タブは空白になります。この問題を抱える唯一のコントロールです。 CTabCtrlの外側の別のCListCtrlが正しく表示されます。タブを入れ替えてもう一度やり直すと、もう一方のタブが表示され、最初のタブが通常通り表示されます。
最小化する前にダイアログの他の部分にアクセスすると、これは最小化が私が取る絶対的な最初の操作である場合にのみ起こります。また、このタブをOnInitDialogの起動時にCTabCtrlを設定する場所に設定すると、他のタブにあるCListCtrlも発生します。私は実際に私のOnSysCommand(...)に次のように追加することで、この問題の影響を解決した
:
if ((nID & 0xFFF0) == SC_RESTORE)
{
m_ctrlReadList.Invalidate();
}
しかし、私は唯一起こる問題を解決するためにコードを追加しているというバグを私にそのような奇妙な状況では私はこの動作に至っているセットアップで逃したことがあると思うのを助けることができません。誰でも最初に何が起こっているかについての説明を提供できますか?
zオーダーに関連する問題でしょうか? –
私は、あなたを助けるために関連するコードをもっと見る必要があると思います。 – rrirower
1.ダイアログエディタで、他のコントロールがあるかどうかを確認します。 2.復元直後に、Spy ++を使用して同じ状況を確認します – Ajay