Позвольте мне сказать, что я использую старые технологии по сегодняшним стандартам! Это происходит в MFC на Visual Studio 2005 и работает под WinXP. (Если это не удалось ... ;-))MFC CListCtrl не появляется после минимизации восстановления
У меня есть диалоговое приложение, которое имеет CTabCtrl с двумя вкладками. Каждый из них содержит CListCtrl. Они отлично работают при нормальных обстоятельствах. Они правильно заполняют и показывают и прячутся, как должны. Когда я сначала открываю приложение, выбор дисплея правильный. Если я затем минимизирую диалог и восстанавливаю, CList Ctrl не отображает, вкладка пуста. Это единственный контроль, который имеет эту проблему. Другой CListCtrl вне CTabCtrl отображается правильно. Если я затем поменяю вкладки и обратно, появится другая вкладка, тогда первая появится как обычная.
Этого не происходит, если я получаю доступ к любой другой части диалога перед минимизацией, только когда минимизация является абсолютным первым действием, которое я принимаю. Это также происходит с CListCtrl, который у меня есть на другой вкладке, если я установил эту вкладку для выбора при запуске в OnInitDialog, где я установил CTabCtrl.
я на самом деле решил эффект этой проблемы, добавив в мою OnSysCommand (...) следующее:
if ((nID & 0xFFF0) == SC_RESTORE)
{
m_ctrlReadList.Invalidate();
}
но это прослушивает меня, что я добавляю код, чтобы решить проблему, которая случается только в таких странных обстоятельствах. Я не могу не думать о том, что в настройке я кое-что пропустил, что ведет к такому поведению. Может ли кто-нибудь дать какое-либо объяснение тому, что вызывает его в первую очередь?
Это может быть проблема, связанная с z-порядком? –
Думаю, нам нужно больше узнать о соответствующем коде, который поможет вам. – rrirower
1. В редакторе диалогов посмотрите, есть ли какой-либо другой элемент управления. 2. После восстановления используйте Spy ++, чтобы увидеть ту же ситуацию – Ajay