const CString Text[4] = { "Gast", "Vuz", "Vega", "Getman" };
int ComboInd = m_MagazinCombo.GetCurSel();
CString mag = Text[ComboInd];
Вопрос по строкам
1. Есть КомбоБокс, в нем 12 пунтков. Для этого Бокса создана переменная. Получаю индекс выделенного элемента:
int ComboInd;
ComboInd = m_MagazinCombo.GetCurSel();
теперь согласно индекса в строку
CString mag;
нужно занести текст, например "Vuz" или "Vega" или "Getman" и т.д всего 12 значений
Делать типа:
if (ComboInd == 0)
{
mag = "Gast";
}
else
if (ComboInd == 1)
{
mag = "Vuz";
}
else
if (ComboInd == 2)
{
mag = "Vega";
}
else
if (ComboInd == 3)
{
mag = "Getman";
}
как-то некрасиво, громоздко и неоптимально
хотелось бы задать типа массива, где элементы массива это строки и была бы возможность вытаскивать элемент из массива с помощью оператора [].
и еще один вопрос
как полученное из ЕдитБокса значение преобразовать в число (чтобы сделать с ним операции), а затем снова преобразовать в текст
(функции atoi и itoa работают с char* а получаемое значение заносится в CString)
Код:
Преобразовать CString в int можно так:
Код:
int i = atoi(cstring.GetBuffer());
И наоборот:
Код:
int integer = 10;
cstring.Format("%d", integer);
cstring.Format("%d", integer);
Цитата:
Originally posted by avatara
Извините, что задаю такой вопрос, давно не занимался программированием и вот возникла необходимость. Кстати в поиске по форуму вроде какой-то глюк - не переходит на вторую страницу поиска, поэтому и спрашиваю.
1. Есть КомбоБокс, в нем 12 пунтков. Для этого Бокса создана переменная. Получаю индекс выделенного элемента:
int ComboInd;
ComboInd = m_MagazinCombo.GetCurSel();
теперь согласно индекса в строку
CString mag;
нужно занести текст, например "Vuz" или "Vega" или "Getman" и т.д всего 12 значений
Делать типа:
if (ComboInd == 0)
{
mag = "Gast";
}
else
if (ComboInd == 1)
{
mag = "Vuz";
}
else
if (ComboInd == 2)
{
mag = "Vega";
}
else
if (ComboInd == 3)
{
mag = "Getman";
}
как-то некрасиво, громоздко и неоптимально
хотелось бы задать типа массива, где элементы массива это строки и была бы возможность вытаскивать элемент из массива с помощью оператора [].
и еще один вопрос
как полученное из ЕдитБокса значение преобразовать в число (чтобы сделать с ним операции), а затем снова преобразовать в текст
(функции atoi и itoa работают с char* а получаемое значение заносится в CString)
Извините, что задаю такой вопрос, давно не занимался программированием и вот возникла необходимость. Кстати в поиске по форуму вроде какой-то глюк - не переходит на вторую страницу поиска, поэтому и спрашиваю.
1. Есть КомбоБокс, в нем 12 пунтков. Для этого Бокса создана переменная. Получаю индекс выделенного элемента:
int ComboInd;
ComboInd = m_MagazinCombo.GetCurSel();
теперь согласно индекса в строку
CString mag;
нужно занести текст, например "Vuz" или "Vega" или "Getman" и т.д всего 12 значений
Делать типа:
if (ComboInd == 0)
{
mag = "Gast";
}
else
if (ComboInd == 1)
{
mag = "Vuz";
}
else
if (ComboInd == 2)
{
mag = "Vega";
}
else
if (ComboInd == 3)
{
mag = "Getman";
}
как-то некрасиво, громоздко и неоптимально
хотелось бы задать типа массива, где элементы массива это строки и была бы возможность вытаскивать элемент из массива с помощью оператора [].
и еще один вопрос
как полученное из ЕдитБокса значение преобразовать в число (чтобы сделать с ним операции), а затем снова преобразовать в текст
(функции atoi и itoa работают с char* а получаемое значение заносится в CString)
Во первых, что нам мешает взять CString сразу с комбобокса? а именно m_MagazinCombo.GetLBText(ComboInd, mag);
Это первное, второе... В число преобразовать просто, есть же не только atoi, есть еще wtoi, и самое нужное _ttoi... Из числа в строку (как отмечалось выше) через CString::Format
Цитата:
Originally posted by Damarus
Преобразовать CString в int можно так:
Преобразовать CString в int можно так:
Код:
int i = atoi(cstring.GetBuffer());
Так нельзя, если у нас уникодный проект, то работать не будет... Нужно, как я говорил выше так:
Код:
int i = _ttoi(cstring);
const CString Text[4] = { "Gast", "Vuz", "Vega", "Getman" };
а так я делал, правда без спецификатора КОНСТ, надо попробовать
Еще есть идея в данном случае вместо CString использовать CStringArray
Большое СПАСИБО, всем кто помог.