Re: Помогите с MFC
От: Кодт Россия  
Дата: 31.08.05 15:17
Оценка: 2 (1)
Здравствуйте, CrazyButcher, Вы писали:

CB>Я никогда раньше не писал программы на С++ под MFC, но мне нужно сделать всего 2 вещи:


[ Формулировка задания такая, будто ты лабу сдаёшь. Хотя сегодня 31 августа. ]

CB>1)Скопировать из Edit Control'а IDC_EDIT1 текст в переменную x.

CB>2)Преобразовать переменную типа Int в строку.
CB>3)Добавить преобразованную переменную х в Listbox IDC_LIST1.

Переменная x — это таки целое или строка? Если целое, то зачем конвертировать туда и обратно?

Допустим, что целое.

Итак.
1. Создаёшь в классе диалога (на котором есть упомянутые контролы) переменные, привязанные к контролам
— int m_nEdit1 (он же x)
— CListBox m_lbxList1
Это проще всего сделать визардом в Студии. Class View — Add variable — дальше сам разберёшься, надеюсь.
(У меня под рукой нет VS2003, а в VC6 визард по-другому устроен, поэтому детальные инструкции дать не могу).

2. В том месте, где тебе нужно выполнить эти действия, пишешь
void CYourDialog::DoThisWork()
{
  UpdateData(/*true*/); // скопировать данные из окна в переменные
    // теперь m_nEdit1 содержит числовое значение

  CString str; str.Format("%d", m_nEdit1); // перегоняем его в строку наиболее общим способом.
    // Если применять подобные конструкции не позволяет религия (и правильно делает), изучай сишный itoa или boost::lexical_cast

  m_lbxList1.AddString(str); // добавляем новую строку
    // Возможно, тебе захочется сделать проверку - нет ли уже такой строки в списке?
    // В простейшем случае, проверяй
  if(m_lbxList1.FindStringExact(0,str)!=LB_ERR) MessageBox("This value already exists!");
    // а вообще, это зависит от решаемой задачи
}
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.