CSplitterWnd: RecalcLayout вызывает закрытие окна

Я только что унаследовал проект кода, и по какой-то причине его исполняемый файл закрывается сразу после запуска. Никто не знает, почему это так, потому что незадолго до того, как проект мне дали, он работал и работал нормально, но это ни здесь, ни там.

Поэтому, не зная, как работает проект, я попытался отладить эту проблему и свел ее к включению этого кода:

CMyApp* pApp = (CMyApp*)AfxGetApp();
ShowWindow(SW_SHOW);
UpdateWindow();
if ( !pApp->RestoreWindowPos( this, MAINFRAME_POSITION_ENTRYNAME ) )
{
MoveWindow( CRect(0,0,636,470) );
}

CRect rect(0,0,0,0);
GetClientRect(&rect);

int nWidth = pApp->GetProfileInt(_T("Settings"), QUEUESVIEW_SPLITTER_WIDTH, 200 );
m_wndSplitter.SetColumnInfo( 0, nWidth, 50 );
nWidth = pApp->GetProfileInt(_T("Settings"), EXTENSIONSVIEW_SPLITTER_WIDTH, 200 );
m_wndSplitter.SetColumnInfo( 1, nWidth, 50 );
m_wndSplitter.RecalcLayout();

Теперь окно, которое загружается, должно быть разделено на четыре панели (два столбца, два ряда), и можно видеть, что это четко связано с расположением и размером каждой из них. Проблема конкретно вызвана последней строкой m_wndSplitter.RecalcLayout(), Если я закомментирую эту единственную строку, то окно загружается нормально, но все кнопки отображаются серым цветом, и если я пытаюсь изменить размеры панелей, приложение вылетает.

Извините, я не могу быть более подробным, но я сам не знаком с этим кодом. Итак, мой вопрос Кто-нибудь может подумать о каких-либо обстоятельствах, когда включение этой строки может вызвать этот эффект? Поскольку в коде, по-видимому, не было никаких изменений с момента его последней работы, мне нечего делать, кроме того, что я объяснил.

Спасибо за любую помощь, которую может предложить каждый!

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы ammmcru@yandex.ru
Adblock
detector