![]() |
Помогите разобраться с VC6
У меня создано 2 немодальных диалоговых окна. На 1-ом расположен ActiveX компонент - таблица MSFlexGrid. Мне из 2-го окна надо изменить кол-во сторк в таблице(и вообще управлять ею). Но если прямо обратиться к ф-иям объекта класса CMSFlexGrid выдается ошибка:
Debug Assertion Failed!:kill: Если же изменяешь Static Text, этой ошибки нет, но текст не изменяется :(. Так что не так и что же делать!?!:idontnow: : CTableDlg* MDlg; //CTableDlg - 1-е окно MDlg = new CTableDlg(); MDlg->m_grid.SetTextMatrix(0,1,"Name"); //Здесь - глючит // m_grid экземпляр класса CMSFlexGrid MDlg->m_text="HELLO!";//А здесь - нет //m_text связан с Static Text 1-го окна |
Не понятно нечего.
Если ты что-то собираешься делать в 1-ом диалоге из 2-го тебе нужно получить указатель на уже существующий обьект 1-диалога, а ты, вроде как, пытаешься создать новый экземпляр, который к первому никакого отношения не имеет. Кроме того : >>MDlg = new CTableDlg(); Этого мало. Нужно еще показать диалог что-то типа: MDlg->ShowWindow(SW_SHOW); а то ты пытаешься что-то сделать с гридом для которого еще окно не создано, отсюда повидимому и "Debug Assertion Failed!" И еще : >>MDlg->m_text="HELLO!";//А здесь - нет >>//m_text связан с Static Text 1-го окна Этого тоже мало,чтобы изменения отобразить на окне - не забывай делать UpdateData(FALSE); |
Esli ty sozdaesh nemodalnyj dialog to nuzno vyzuvat' function Create.
|
Цитата:
Для управления елементов одного окна из другово делаем 1) Вносим в код окна 2 инклуд на код окна 1 Код:
//MyWnd2.cppКод:
MyWnd2.m_ptrTableDld = *MyWnd1;Код:
CMSFlexGrid *mG = (CMSFlexGrid *)&(m_ptrTableDld->m_grid);Код:
mG->SetTextMatrix(0,1,"Name"); |
| Часовой пояс GMT +4, время: 02:42. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.