Опубликован: 17.08.2010 | Доступ: свободный | Студентов: 999 / 59 | Оценка: 4.11 / 3.89 | Длительность: 29:38:00
Самостоятельная работа 10:

Поддержка баз данных с помощью API ODBC

Конструирование главного диалогового окна приложения

  • Раскройте вкладку Resource View и русифицируйте ресурсы
    • IDD_ABOUTBOX
    • IDD_API_ODBC_DIALOG

  • Откройте ресурс IDD_API_ODBC_DIALOG в режиме дизайна, удалите все элементы управления и добавьте следующие элементы управления из панели Toolbox
    • List Box - 1 шт.
    • Static Text - 3 шт.
    • Edit Control - 3 шт.
  • Включите панель инструментов Dialog Editor и с ее помощью расположите элементы управления так, как показано на рисунке. Периодически пользуйтесь кнопкой Test Dialog

  • Измените идентификаторы списка и полей ввода и создайте для этих элементов управления переменные-члены DDX в соответствии с таблицей, воспользовавшись мастером добавления переменных. Переменные добавляются в класс CAPI_ODBCDlg приложения
    Ассоциированные переменные для элементов управления
    ID Категория Тип Имя Доступ
    IDC_LISTBOX Control CListBox m_ListBox public
    IDC_NUMEDIT Value int m_NumEdit public
    IDC_NAMEEDIT Value CString m_NameEdit public
    IDC_YEAREDIT Value int m_YearEdit public

Настройки мастера приведены на рисунках





Мастер внесет добавления в объявление класса

Добавления в файл API_ODBCDlg.h
// CAPI_ODBCDlg dialog
class CAPI_ODBCDlg : public CDialog
{
..................................................
public:
  // Переменная управления списком
  CListBox m_ListBox;
  // Переменная поля ввода № п/п
  int m_NumEdit;
  // Переменная поля ввода ФИО
  CString m_NameEdit;
  // Переменная поля ввода Год
  int m_YearEdit;
};

Мастер внесет добавления в определение класса

Добавления в файл API_ODBCDlg.cpp
// CAPI_ODBCDlg dialog
  
CAPI_ODBCDlg::CAPI_ODBCDlg(CWnd* pParent /*=NULL*/)
  : CDialog(CAPI_ODBCDlg::IDD, pParent)
  , m_NumEdit(0)
  , m_NameEdit(_T(""))
  , m_YearEdit(0)
{
  m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
  
void CAPI_ODBCDlg::DoDataExchange(CDataExchange* pDX)
{
  CDialog::DoDataExchange(pDX);
  DDX_Control(pDX, IDC_LISTBOX, m_ListBox);
  DDX_Text(pDX, IDC_NUMEDIT, m_NumEdit);
  DDX_Text(pDX, IDC_NAMEEDIT, m_NameEdit);
  DDX_Text(pDX, IDC_YEAREDIT, m_YearEdit);
}
  
BEGIN_MESSAGE_MAP(CAPI_ODBCDlg, CDialog)
  ON_WM_SYSCOMMAND()
  ON_WM_PAINT()
  ON_WM_QUERYDRAGICON()
  //}}AFX_MSG_MAP
END_MESSAGE_MAP()
  
........................................................
Александр Даниленко
Александр Даниленко
Стоит Windows 8 Pro, Visual Studio 2010 Express Edition .