C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Считывание и запись в данных в объектах / mini-FAQ / Visual C++


Научимся считывать и выводить значения чего-либо.

Создадим проект типа Simple Dialog, перейдем в окне SolutionExplorer на вкладку Resources. Перед нами станет видна будущая форма. Сразу нажимаем на форме правой кнопкой мыши, после чего перед нами появится окно Dialog Properties. Нажмем Keep Visible, чтобы оно осталось после перемещения фокуса на какое-либо другое окно. Поместим на форму кнопку и дадим ей какое-нибудь название (по умолчанию оно – Button1). Посмотрите некоторые свойства кнопки, определяемые в окне Properties.

Рисунок

Щелкнем два раза по нашей кнопке, и согласимся (или поменяем) конец иимени функции (обозначен Button2):

Рисунок

Нажимаем OK и оказываемся в редакторе кода:

Только что программой созданы строки


void CPROGADlg::OnButton1()

{

// TODO: Add your control notification handler code here

}


Это называется функцией (как вы знаете, надеюсь).


Далее поместим на форму два компонента Edit и по желанию два Label (нужны только для обозачения, из чего куда считывается. Transiver -передатчик, Resiver – приемник).

Рисунок

Нажимаем на созданную ранее кнопку GO! И переходим к редактору кода.

Находим в MSDN (это отличное справочное руководство по VisualStudio. Вообразите объем: на январь 2005 года оно насчитывало более 65 тысяч статей) функцию GetDlgItemText.


int GetDlgItemText(

   int nID,
   LPTSTR lpStr,
   int nMaxCount 
) const;

или

int GetDlgItemText(
   int nID,
   CString& rString 
) const;

На самом деле не так уж страшно.

nID - сюда вписывается значение из окна Edit Properties. В данном случае IDC_EDIT1.

Рисунок
lpStr - Так называемый буфер – его мы определяем следующей строчкой:
char Peremennaya[100]; //100 – максимальная длина.
И подставляем в lpStr слово Peremennaya.
nMaxCount - Максимальная длина в байтах. Можем написать sizeof(Peremennaya).
В результате появится запись


char Peremennaya[100];

GetDlgItemText(IDC_EDIT1, Peremennaya,sizeof(Peremennaya));


Мы только что считали значение из Edit1 (Transiver по нашей терминологии). Теперь запишем его в Edit2 (Resiver по нашей терминологии). Можем воспользоваться функцией


voi (
   int nID,
   LPCTSTR lpszString 
     );

И здесь все просто, главное эту простоту понять.

nID вписывается значение из окна Dialog Properties. В данном случае IDC_EDIT2.

LpszString – та самая сделанная нами Peremennaya, значение которой – поле EDIT1.

В результате появится запись еще проще


SetDlgItemText(IDC_EDIT2, Peremennaya);

Теперь код, инициализирующийся при нажатии кнопки GO!

void CPROGADlg::OnButton1()

{

char Peremennaya[100];

GetDlgItemText(IDC_EDIT1, Peremennaya,sizeof(Peremennaya));

SetDlgItemText(IDC_EDIT2, Peremennaya);

// TODO: Add your control notification handler code here

}

Компилируем и линкуем <Ctrl>+<F7>. Запускаем <F5>. Вводим в поле EDIT1, названное нами Transiver какое-либо значение, например, 122. После нажатия кнопки GO! оно отобразится в поле EDIT2 (Resiver)

Рисунок