Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Неуправляемый Edit Control


Автор: Nill 30.3.2004, 20:17
Пример:
Создаётся (в MSVS 7.1) С++ MFC Application, диалоговое окно, на него кидается Edit Control и Button.
Edit Control'у даётся control variable с именем m_N (она класса CEdit ).
На Button вешается сдедующий обработчик:
{
int i=0;
SetValue(&m_N, 10);
i=GetValue(&m_N);
}
,где функции SetValue и GetValue - это:

void SetValue(CEdit *item, int value){
item->SetDlgItemInt(item->GetDlgCtrlID(), value);
}
UINT GetValue(CEdit *item){
return item->GetDlgItemInt(item->GetDlgCtrlID(), 0, 0);
}

Причина изврата:
1) во время работы проги нужно оперативно вводить-выводить числа
2) хочется избавить текст программы от длинных выражений типа item->.......

Суть проблемы:
1) на выходе получаем i=0, т.е. SetDlgItemInt и GetDlgItemInt не работают!
2) использование item->UpdadeData в различных вариантах не дало ничего

Как сделать, чтобы работало?

Автор: Borisff2003 31.3.2004, 06:05
Код

void SetValue(CEdit *item, int value)
{
char t[100];
item->SetWindowText(itoa(value,t,10));
}
UINT GetValue(CEdit *item)
{
char t[100];
item->GetWindowText(t,100);
return atoi(t);
}


Кривовато, но работает

Автор: srd 31.3.2004, 08:47
Для функции itoa достаточно буфера длиной в 33 символа.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)