imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 07.05.2003, 03:52     # 1
Tyler Derden
Guest
 
Сообщения: n/a

Question Помогите разобраться с VC6

У меня создано 2 немодальных диалоговых окна. На 1-ом расположен ActiveX компонент - таблица MSFlexGrid. Мне из 2-го окна надо изменить кол-во сторк в таблице(и вообще управлять ею). Но если прямо обратиться к ф-иям объекта класса CMSFlexGrid выдается ошибка:
Debug Assertion Failed!

Если же изменяешь Static Text, этой ошибки нет, но текст не изменяется .
Так что не так и что же делать!?! :

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-го окна
 
Старый 08.05.2003, 09:56     # 2
alexey_ma
Member
 
Регистрация: 10.03.2002
Адрес: Israel
Сообщения: 245

alexey_ma Нимб уже пробиваетсяalexey_ma Нимб уже пробивается
Не понятно нечего.
Если ты что-то собираешься делать в 1-ом диалоге из 2-го тебе нужно получить указатель на уже существующий обьект 1-диалога, а ты, вроде как, пытаешься создать новый экземпляр, который к первому никакого отношения не имеет.
Кроме того :
>>MDlg = new CTableDlg();
Этого мало. Нужно еще показать диалог что-то типа:
MDlg->ShowWindow(SW_SHOW);
а то ты пытаешься что-то сделать с гридом для которого еще окно не создано, отсюда повидимому и "Debug Assertion Failed!"
И еще :
>>MDlg->m_text="HELLO!";//А здесь - нет
>>//m_text связан с Static Text 1-го окна
Этого тоже мало,чтобы изменения отобразить на окне - не забывай делать UpdateData(FALSE);
__________________
Best Regards
alexey_ma вне форума  
Старый 17.05.2003, 00:32     # 3
Zeev
Guest
 
Сообщения: n/a

Esli ty sozdaesh nemodalnyj dialog to nuzno vyzuvat' function Create.
 
Старый 18.05.2003, 09:32     # 4
SapeR
::VIP::
 
Регистрация: 17.12.2002
Адрес: Q-ata, Israel
Сообщения: 310

SapeR Луч света в тёмном царствеSapeR Луч света в тёмном царствеSapeR Луч света в тёмном царствеSapeR Луч света в тёмном царствеSapeR Луч света в тёмном царстве
Цитата:
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-го окна
При чём здесь NEW ?!
Для управления елементов одного окна из другово делаем

1) Вносим в код окна 2 инклуд на код окна 1
Код:
//MyWnd2.cpp
#include "MyWnd1.h"
2) Передаём поинтер окна 1 окну 2
Код:
MyWnd2.m_ptrTableDld = *MyWnd1;
3) Через поинтер на окно ловим поинтер на контроль
Код:
CMSFlexGrid *mG = (CMSFlexGrid *)&(m_ptrTableDld->m_grid);
или
CMSFlexGrid *mG = (CMSFlexGrid *)m_ptrTableDld->GetDlgItem(IDC_TABLE...)
Теперь можно делать
Код:
mG->SetTextMatrix(0,1,"Name");
SapeR вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 02:42.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.