TC_ITEM TabItem;
TabItem.mask = TCIF_TEXT;
TabItem.pszText = "Чат";
m_TabCtrl.InsertItem(0, &TabItem );
................
CPage1* pPage1;
pPage1 = new CPage1;
TabItem.mask = TCIF_PARAM;
TabItem.lParam = (LPARAM)pPage1;
m_TabCtrl.SetItem(0, &TabItem);
VERIFY(pPage1->Create(CPage1::IDD, &m_TabCtrl));
pPage1->SetWindowPos(NULL, 2, 42, 0, 0, SWP_NOSIZE | SWP_NOZORDER);
pPage1->ShowWindow(SW_SHOW);
Проблема с запуском диалога
В ней у меня есть некоторый класс с диалогом, но когда я его инициализирую и вызываю через DoModal(), он блокирует выполнение программы в целом. То есть главное окно перестаёт перерисовываться (там стоит моя обработка WM_PAINT), обрабатывать нажатия клавиш, мыши и тд.
Ну тот же эффект, как если MessageBox вызвать.
Не можете подсказать, как сделать чтобы вывзываемый диалог не блокировал исполнение программы?
Создай немодальний диалог
//CNoModalDlg - клас твоего диалога
CNoModalDlg *m_NoModalDlg;
//Выделяешь память
m_NoModalDlg = new CNoModalDlg;
//Создаешь
m_NoModalDlg->Create(UINT nIDTemplate, CWnd* pParentWnd = NULL );
//nIDTemplate - идентификатор ресурса диалога.
/*pParentWnd - указатель на объект родителя или владельца,
которому принадлежит объект диалога. Если он равен NULL,
то родительским окном является основное окно приложения.
*/
m_NoModalDlg->Create(IDD_NO_MODAL_DLG,NULL );
//И показываем на экран.
m_NoModalDlg->ShowWindow(SW_SHOW);
//Когда надо закрыть диалог с главного окна вызываем
m_NoModalDlg->DestroyWindow();
//И когда надо уничтожаем
delete m_NoModalDlg; m_NoModalDlg=NULL;
Это то, что надо.
Цитата: AVDEY
Ты вызываешь модальний диалог, который блокирует все сообщения главного окна пока не закроется модальное окно.
Создай немодальний диалог
Создай немодальний диалог
В догонку, у меня ещё одна проблема из этой же серии. Главное окно приложения имеет таб, в котором 6 вкладок (ну то есть 6 отдельных диалогов). Инициализирую каждый из них вот так:
Код:
Так вот, когда, например, прокручиваю скрол в edit box'е любого из этих табов, перерисовка главного диалога опять же прекращается :(
Есть идеи как это исправить?