WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  Вопрос новичка.

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Вопрос новичка.
VM опубликован 12-10-2001 18:53 MSK   Click Here to See the Profile for VM   Click Here to Email VM  
Как сделать привязку того что я ввожу в Editbox к какой-то переменной,
ввожу я числовые данные,насколько я понимаю надо
воспользоваться функцией atof,но как конкретно это сделать я что -то не пойму.
Я понимаю ,что это ламерский вопрос,но не в одной из моих книг этого неразбирается.
Хотя бы подскажите это искать в MSDN.
Заранее Спасибо.
server_mouse опубликован 12-10-2001 21:13 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
Воспользуйся ClassWisard вкладка Member Varibles. Привяжись к int например (для этого надо задать св-во Number у твоего эдита. И юзай ф-цию UpdateData().

В общем случае гоняй GetDlgItemText() и SetDlgItemText()

Ты это хотел?

VM опубликован 12-10-2001 21:29 MSK     Click Here to See the Profile for VM  Click Here to Email VM     
не совсем.

Для примера,у меня условно говоря, есть выражение x=z+y
я просто хочу вводит значения допустим z или у , не важно чего ,через Editbox иными словами менять значения переменной.

server_mouse опубликован 13-10-2001 09:29 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
Ну сделай примерно так:
void CMyDlg::OnButton1() //Обработчик какой-то твоей кнопки
{
CString str;
int Num;
GetDlgItemText(IDC_MY_EDIT,str);
try //Мало ли чего злобный юзер может навводить...
{ //Да только нас такой бедой не испугаешь...
Num = atoi((LPCTSTR)str );
}
catch(...)
{//И в правду навводил чего-то..
MessageBox("А-я-яй! Ввели не int-овое!");
return;
}
//Ну и делай чего хочется со своим Num.
}
VM опубликован 13-10-2001 14:57 MSK     Click Here to See the Profile for VM  Click Here to Email VM     
СПАСИБО !
migel опубликован 13-10-2001 15:03 MSK     Click Here to See the Profile for migel  Click Here to Email migel     
try
{ //Да только нас такой бедой не испугаешь...
Num = atoi((LPCTSTR)str );
}
catch(...)
{
MessageBox("А-я-яй! Ввели не int-овое!");
return;
}
}

Собственно говоря Сообщения ты никогда не увидиш :-) поскольку atoi НЕ ВЫБРАСЫВАЕТ исключений!
лучше написать свою проверку на валидность строки или на худой конец проверять на 0.

andrewag опубликован 13-10-2001 22:29 MSK     Click Here to See the Profile for andrewag  Click Here to Email andrewag     
Можно просто взять и проверить каждый символ того, что юзер ввел на принадлежность к "0123456789-" или еще ".", если дробные можно...
server_mouse опубликован 14-10-2001 01:35 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
>atoi НЕ ВЫБРАСЫВАЕТ исключений!

Верю, хотя сам никогда не проверял. Просто когда-то в раннем младенчестве делал подобные завороты именно через исключения. Проверять побайтно -- этож неинтересно.

server_mouse опубликован 14-10-2001 01:36 MSK     Click Here to See the Profile for server_mouse  Click Here to Email server_mouse     
Забыл сказать. Делал в билдере.
Demo_S опубликован 14-10-2001 01:56 MSK     Click Here to See the Profile for Demo_S  Click Here to Email Demo_S     
Проще действительно использовать
привязки к переменным и функцию UpdateData как советовал server_mouse.
Делаешь это так:
в своем диалоге или чтоу тебя там,куда ты текст вводишь, вызываешь classwizard( например нажав правую кнопь мыши и бырав ClassWizard из кнтекстного меню.
В появившемся окне переходишь на вкладву Member Variables ищешь там в нижнем окошке ID твоего EditBox'a (если ты его не менял, то будет что-то вроде IDC_EDIT1) . выбираешь его, жмешь Add variable. в появившемся окошке выбираешь имя новой переменной(например m_edit) и ее тип (для тебя int). жми ОК. Теперь внутри программы чтобы достать данные из EditBox'a пишешь UpdateData(true). Все, теперь твои данные находяться в переменной m_edit и ты можешь использовать ее. для вывода данных из m_edit в editbox нужно вызвать UpdateData(false).
Например
//ввод данных
UpdateData(true);
m_edit=m_edit+1;
//вывод результата
UpdateData(false);

теперь в твоем EditBox'e будет значение на 1 больше. и исключения аппвизард за тебя сам все понаписывает.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.