Базы данных и MFC
Может кто-нибудь работал с ним и расскажет как использовать этот метод? Сами данные у меня получается из базы вытаскивать, но добавлять что-то не получается, просто не знаю как использовать этот метод, у него нет ни одного параметра. Что делать?
И второй вопрос: как написать на MFC, чтобы в текстовое поле записывалось значение? Не как метод называется, а конкретно как в коде изменять свойства объекта, который находится на форме, например если это текстовое поле. Потому что имя самого текстового поля на форме называется IDC_EDIT1, а в коде не могу понять как обращаться к его свойствам и изменять их! Именно на MFC.
Пожалуйста помогите мне с этим разобраться!
Может кто-нибудь работал с ним и расскажет как использовать этот метод? Сами данные у меня получается из базы вытаскивать, но добавлять что-то не получается, просто не знаю как использовать этот метод, у него нет ни одного параметра. Что делать?
И второй вопрос: как написать на MFC, чтобы в текстовое поле записывалось значение? Не как метод называется, а конкретно как в коде изменять свойства объекта, который находится на форме, например если это текстовое поле. Потому что имя самого текстового поля на форме называется IDC_EDIT1, а в коде не могу понять как обращаться к его свойствам и изменять их! Именно на MFC.
Пожалуйста помогите мне с этим разобраться![/QUOTE]
Создаём с помощью колдуна (wizzard'a) класс, унаследованный от CRecordset, вызываем AddNew(), меняем необходимые нам поля (то бишь переменные-члены унаследованного класса), затем вызываем метод Update() для завершения добавления записи.
Изменить свойства элемента управления можно несколькими способами:
Код:
CEdit * pEdit = reinterpret_cast<CEdit *> GetDlgItem(IDC_EDIT1);
А можно создать колдуном переменную для элемента управления. Правой кнопкой на элементе управления, "add variable..." Можно создать control-переменную (к примеру, тот же CEdit), а можно обращаться по значению (Value), к примеру для того же EDIT можно использовать CString, int, double, DWORD и т. п.
Или какому массиву полей этого класса, надо присвоить значения которые я хочу добавить, в качестве значений полей в таблице?
Или какому массиву полей этого класса, надо присвоить значения которые я хочу добавить, в качестве значений полей в таблице?[/QUOTE]
Всё гораздо проще и приятней, чем ты ожидаешь. После создания класса wizzard автоматически генерит приватные переменные, имена которых совпатают с именами соответствующих полей, только предваряются префиксом m_ (смотрим в соответствующем .h файле сгенерированного класса). Для изменения этих значений ничего вызывать не надо, меняем их как обычно. К примеру
Код:
set.AddNew();
set.m_MyRecordID = 1;
set.m_Name = L"New record";
set.Update();
set.m_MyRecordID = 1;
set.m_Name = L"New record";
set.Update();
По умолчанию для строковых полей колдун создаёт переменные типа CStringW (то есть, строки в формате Unicode), однако ничто не мешает изменить их тип на CString или CStringA в .h файле, конверсия будет происходить автоматически.
Когда я это сделал у меня появился еще один вопрос.
Я делаю форму с кнопками, чтобы по щелчку на них шла прокрутка записей, и отображалась в текстовых полях - это у меня получилось, но мне захотелось делать кнопку Disabled = false или true.
В режиме редактирования формы, в окошке properties, такое свойство есть, а вот в самом коде в списке свойств и методов класса CButton я что-то не нашел его. Может подскажешь какую-нибудь литературу, в которой описывается как получать доступ к свойствам различных объектов и изменять их. Ведь даже у кнопки на самом деле много различных свойств: ширина, высота, расположение на форме, различные визуальные свойста и т.д., но как к ним получить доступ, чтобы изменять их значения?
Заранее благодарен!
Я делаю форму с кнопками, чтобы по щелчку на них шла прокрутка записей, и отображалась в текстовых полях - это у меня получилось, но мне захотелось делать кнопку Disabled = false или true.
В режиме редактирования формы, в окошке properties, такое свойство есть, а вот в самом коде в списке свойств и методов класса CButton я что-то не нашел его. Может подскажешь какую-нибудь литературу, в которой описывается как получать доступ к свойствам различных объектов и изменять их. Ведь даже у кнопки на самом деле много различных свойств: ширина, высота, расположение на форме, различные визуальные свойста и т.д., но как к ним получить доступ, чтобы изменять их значения?
Заранее благодарен![/QUOTE]
Можно создать переменную любого объекта через Add Variable(кнопки, эдитбокса, листбокса) типа Сontrol и потом через неё управлять свойствами этого объекта, это через визард, а можно вручную как HarryAxe писал:
CButton* m_pBut = (CButton*)GetDlgItem(IDC_BUTTON1);
ну и потом управлять свойствами, например так:
m_pBut->EnableWindow(false);
Заранее благодарен![/QUOTE] MFC - достаточно тонкая оболочка над WinAPI, и принципы программирования под Windows она практически не изменяет. Например, для того, чтобы узнать положение и размер элемента управления или окна на экране, существует WinAPI функция GetWindowRect(HWND hwnd, RECT * lpRect). Аналогично в MFC:
Код:
CEdit * pEdit = (CEDit *) GetDlgItem(IDC_EDIt1);
CRect rect;
pEdit->GetWindowRect(&rect);
CRect rect;
pEdit->GetWindowRect(&rect);
Из литературы посоветовал бы русскую редакцию книги Д. Круглински, С. Уингоу и Дж Шефферда "Программирование на MS VC++ 6.0". Там всё расписано от и до, начиная с простых приложений, основанных на архитектуре "документ/вид", и заканчивая программированием под сети и интернет, работой с базами данных и т. п. Огромная часть книги посвящена COM, автоматизации и OLE, описаны библиотеки наподобие ATL и ещё много полезного. За исключением добавления возможности писать в managed code и включение WTL в базовую поставку Студии, VC++ от шестой версии до восьмой не претерпевал каких-либо существенных изменений.
И правда хорошая книга, по всему Интернету про неё говорят, что она просто отличная.
Хотел на Ozon.ру посмотреть - продается она там или нет, что-то не увидел.
Кто-нибудь знает в каком Интернет магазине можно купить книгу Д. Круглински, С. Уингоу и Дж Шефферда "Программирование на MS VC++ 6.0"?
И правда хорошая книга, по всему Интернету про неё говорят, что она просто отличная.
Хотел на Ozon.ру посмотреть - продается она там или нет, что-то не увидел.
Кто-нибудь знает в каком Интернет магазине можно купить книгу Д. Круглински, С. Уингоу и Дж Шефферда "Программирование на MS VC++ 6.0"?[/QUOTE]
www.piter.com - сайт издателя
www.books.ru - .Net
www.books.ru - версия 6
yafanat.ru
Можно ли эту книгу выкачать откуда нибудь?