Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Помогите с графическим интерфейсом! Edit  (Прочитано 6067 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Vitalya25
Интересующийся

ua
Offline Offline

« : 26-10-2009 10:04 » new

В общем, есть проект в Visual C++ 6.0. , есть функция. Как сделать в программе, чтобы dout[0] можно было вводить в самом интерфейсе?
Код:
void CACR120WriteMasterKeyDlg::OnBtnWriteBlock()
{

BYTE dout[15];

       dout[0] = 65;    // [i]Я так понял dout[0] надо привязать к EditSID2(),как это сделать?[/i] //
       dout[1] =67;
dout[2] =83;
dout[3] =77;
dout[4] =105;
dout[5] =70;
dout[6] =97;
dout[7] =114;
dout[8] =101;
dout[9] =32;
dout[10] =83;
dout[11] =97;
dout[12] =109;
dout[13] =112;
dout[14] =108;
dout[15] =101;
//(unsigned char) IDC_EditSID2;
    //Write to Sector 1 Block 1 = Block 5
    retcode = ACR120_Write(rHandle, SID, 5, dout);

    //'check if retcode is error
    if (retcode < 0)
{
       StrMsg.Format("Error Writing to Block 5: %d",retcode);
       LstIndx=m_List.AddString(StrMsg);
    }
    else
    {
StrMsg.Format("Write to Block 5 Success: %d", retcode);
        LstIndx=m_List.AddString(StrMsg);

    }

    m_List.SetCurSel(LstIndx);

}
[b]
void CACR120WriteMasterKeyDlg::OnChangeEditSID2() [/b]
{

// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.

// TODO: Add your control notification handler code here

}
« Последнее редактирование: 26-10-2009 12:54 от Sel » Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #1 : 26-10-2009 10:18 » 

А как выглядит строка ввода? Те например сразу должны быть введены все 16 значений, или же они будут вводиться по очереди?
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Vitalya25
Интересующийся

ua
Offline Offline

« Ответ #2 : 26-10-2009 10:34 » 

Там будет 16 окошек для ввода каждого числа, потом я нажимаю на кнопку запись. Пока я хочу разобрать с одним числом, как его вводить, остальные сделаю по аналогии. А строка ввода я так понял называется EditBox.

Я так понял  dout[0] надо как-то привязать к функции Edit, типа в функции записи записать, что-то типа

dout[0] = (unsigned char) IDC_EditSID2;   (так не работает).
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #3 : 26-10-2009 11:16 » 

Всё понятно.

Значит так у тебя MFC проект, поэтому лучше воспользоваться ф-ми DDX_ ... с небольшим трюком.

Пример:

Шаг 1. На форме диалога я создаю окошко CEdit (IDC_EDIT1) и создаю связанную с ним переменню мембер класса диалога типа int m_nDOut1 средствами визуального редактора. В файле срр помимо всего прочего мастер добавляет в ф-ю void ИмяКлассаДиалога::DoDataExchange(CDataExchange* pDX)
вот такой код:

DDX_Text(pDX, IDC_EDIT1, m_nDOut1);

Шаг 2. Добавляем мембер-массив

int m_nDOut[16]; // обрати внимание на размерность массива! в твоём случае у тебя прога вылетит при попытке доступа к 16-ому элементу массива

в срр файле добавляем след. строчки


DDX_Text(pDX, IDC_EDIT1, m_nDOut[0]);
DDX_Text(pDX, IDC_EDIT2, m_nDOut[1]);
DDX_Text(pDX, IDC_EDIT3, m_nDOut[2]);
DDX_Text(pDX, IDC_EDIT4, m_nDOut[3]);
...
DDX_Text(pDX, IDC_EDIT16, m_nDOut[15]);

где IDC_EDIT1 по IDC_EDIT16 идентификаторы соотвтествующих контролов (у тебя они могут быть другими)


зы Да, ну соответсвтенно, всё что добавил мастер в h и cpp удаляем.

зы зы Не забываем про иницализацию массива в конструкторе.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Vitalya25
Интересующийся

ua
Offline Offline

« Ответ #4 : 28-10-2009 08:42 » 

спасибо, разобрался:)
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines