Официальный сайт студ.городка НГТУ
Программирование и БД » [VC++]Проблема с Combo Box 

#1  15.02.09 12:04

[VC++]Проблема с Combo Box

Добрый день!

Подскажите, пожалуйста! Создал диалог и поместил на него Combo Box, пытаюсь теперь добавить в него строки. Делаю так:

Код: c++:

void CMainFrame::On32771()
{	
	CustomerData dlg;
 
	CComboBox *CBox = ((CComboBox *)dlg.GetDlgItem(IDC_COMBO1));
 
	CBox->AddString(L"test");
 
	INT_PTR Result = dlg.DoModal();
}


В результате вылетает исключение такого вида:

http://hostel.nstu.ru/uploaded/gallery/ … 677580.png

Исправлено Дональдак (15.02.09 12:06)

Offline

#2  15.02.09 12:06

Re: [VC++]Проблема с Combo Box

Не получилось сюда картинку вставить.

Offline

#3  15.02.09 15:05

Re: [VC++]Проблема с Combo Box

если пристально всмотреться в картинку, то можно заметить, что this равен нулю
это как бы намекает нам, что метод GetDlgItem() вернул совсем не то, что ожидалось
из этого можно сделать вывод, что элемента управления с таким id в указанном месте нет

Offline

#4  15.02.09 17:29

Re: [VC++]Проблема с Combo Box

Ога согласен, а вообще, всегда проверяй указатель. Он у тебя нулевой.
на фото видно, ассерт проверяет IsWindow, значит такого окна не существует.

Offline

#5  16.02.09 16:16

Re: [VC++]Проблема с Combo Box

Спасибо! С этим разобрался, поместив работу с контролами в OnInitDialog().
Действительно, CustomerData dlg - это всего лишь экземпляр класса и в нем еще нет ничего.

Но появилась другая проблема:

Код: c++:

while(rset->next())
	{
		string StreetName = rset->getString(1);
		CString tmp = (CString)StreetName.c_str();
		CBox2->AddString(tmp);
	}


Все работает отлично пока в строке нет пробелов и падает, например, на такой строчке
StreetName = 'Бориса Богаткова'.

Как мне добиться корректной работы со строкой, где есть пробелы?

Проблема скорее всего в считывании строки с пробелами в string, т.к.

tmp.Replace(' ', '_');

тоже не помогает.

getString - это
virtual std::string oracle::occi::ResultSet::getString(unsigned int colIndex) = 0;

Стандартная функция из occi, которая должна возвращать строку считанную из таблицы из соответствующей ячейки.
Таблица получается в результате выполнения запроса, где как раз в первой колонке находятся нужные мне строчки. В базе они лежат в формате varchar(60).

Исправлено Дональдак (16.02.09 16:16)

Offline

Программирование и БД » [VC++]Проблема с Combo Box 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.063 сек.
Выполнено 14 запросов.