LibKing » Книги » comp-programming » Александр Фролов - Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2

Александр Фролов - Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2

Тут можно читать онлайн Александр Фролов - Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - бесплатно полную версию книги (целиком). Жанр: comp-programming, издательство Диалог-МИФИ, год 1996. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте LibKing.Ru (ЛибКинг) или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
libking
  • Название:
    Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2
  • Автор:
  • Жанр:
  • Издательство:
    Диалог-МИФИ
  • Год:
    1996
  • ISBN:
    нет данных
  • Рейтинг:
    3.88/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Ваша оценка:

Александр Фролов - Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 краткое содержание

Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - описание и краткое содержание, автор Александр Фролов, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга посвящена программированию в среде Microsoft Visual C++ с использованием библиотеки классов MFC. В ней мы расскажем о разработке приложений с многооконным пользовательским интерфейсом, использовании классов MFC для создания меню, панелей управления и состояния. Рассмотрим возможности повторного использования программного кода, предоставляемые Microsoft Visual C++. Отдельную главу книги мы посвятили разработке приложений, взаимодействующих с базами данных через драйвера ODBC.

Книга предназначена для всех, кто интересуется программированием в среде операционных систем Windows 95 и Windows NT версий 3.51 и 4.0.

Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - читать онлайн бесплатно полную версию (весь текст целиком)

Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - читать книгу онлайн бесплатно, автор Александр Фролов
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать

CDaterSet::CDaterSet(CDatabase* pdb) : CRecordset(pdb) {

DECLARE_DYNAMIC(CDaterSet)

// Field/Param Data

//{{AFX_FIELD(CDaterSet, CRecordset)

CString m_NAME;

CString m_ADDRESS;

long m_PRIORITY;

CString m_PHONE;

//}}AFX_FIELD

// Overrides

//{{AFX_VIRTUAL(CDaterSet)

public:

virtual CString GetDefaultConnect();

virtual CString GetDefaultSQL();

virtual void DoFieldExchange(CFieldExchange* pFX);

//}}AFX_VIRTUAL

// Implementation

#ifdef _DEBUG

virtual void AssertValid() const;

virtual void Dump(CDumpContext& dc) const;

#endif

};

Класс CDaterSet содержит в себе переменные, представляющие поля записи базы данных. Эти переменные размещаются внутри комментариев вида //{{AFX_FIELD.

В нашем случае эти переменные называются m_NAME, m_ADDRESS, m_PRIORITY и m_PHONE. Они представляют поля NAME, ADDRESS, PRIORITY и PHONE соответственно.

Метод GetDefaultConnect класса CDaterSet

Метод GetDefaultConnect возвращает текстовую строку, которая определяет источник данных, который будет связан с объектом CDaterSet. Эта строка формируется MFC AppWizard, при выборе вами источника данных:

CString CDaterSet::GetDefaultConnect() {

return _T("ODBC;DSN=Address Pad");

}

Метод GetDefaultSQL класса CDaterSet

Метод GetDefaultSQL возвращает текстовую строку, которая должна содержать имя таблицы источника данных или выражение SELECT языка SQL. На основе этой таблицы или результата запроса SELECT будет сформирован набор записей для объекта CDaterSet:

CString CDaterSet::GetDefaultSQL() {

return _T("[TextBase.txt]");

}

Метод DoFieldExchange класса CDaterSet

Метод DoFieldExchange выполняет обмен данными между элементами класса CDaterSet, представляющими поля набора записей, и источником данных:

void CDaterSet::DoFieldExchange(CFieldExchange* pFX) {

//{{AFX_FIELD_MAP(CDaterSet)

pFX->SetFieldType(CFieldExchange::outputColumn);

RFX_Text(pFX, _T("[NAME]"), m_NAME);

RFX_Text(pFX, _T("[ADDRESS]"), m_ADDRESS);

RFX_Long(pFX, _T("[PRIORITY]"), m_PRIORITY);

RFX_Text(pFX, _T("[PHONE]"), m_PHONE);

//}}AFX_FIELD_MAP

}

Метод DoFieldExchange содержит блок из комментариев //{{AFX_FIELD_MAP, в котором расположены несколько методов RFX_Text, которые выполняют обмен данными между полями источника данных (в нашем случае это поля NAME, ADDRESS, PRIORITY, PHONE) и соответствующими элементами класса CDaterSet (m_NAME, m_ADDRESS, m_PRIORITY, m_PHONE).

Вы не должны вручную исправлять программный код в блоке AFX_FIELD_MAP. Для этого надо использовать MFC ClassWizard (рис. 5.17).

Рис 517 Диалоговая панель MFC ClassWizard Методы AssertValid и Dump класса - фото 108

Рис. 5.17. Диалоговая панель MFC ClassWizard

Методы AssertValid и Dump класса CDaterSet

Методы AssertValid и Dump класса CDaterSet могут использоваться при отладке приложения.

Ресурсы приложения Dater

В файле ресурсов приложения Dater определены меню, панель управления и таблица клавиш акселераторов IDR_MAINFRAME, шаблон диалоговой панели IDD_DATER_FORM, который используется окном просмотра и шаблон информационной панели IDD_ABOUTBOX. В файле ресурсов также расположены строковые ресурсы, описывающие строки меню, кнопки панелей управления и индикаторы панели состояния. Мы привели исходный текст файла Dater.rc в листинге 5.3.

Листинг 5.3. Файл Dater.rc

//Microsoft Developer Studio generated resource script.

//

#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS

//////////////////////////////////////////////////////////////

//

// Generated from the TEXTINCLUDE 2 resource.

//

#include "afxres.h"

//////////////////////////////////////////////////////////////

#undef APSTUDIO_READONLY_SYMBOLS

//////////////////////////////////////////////////////////////

// English (U.S.) resources

//#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)

//#ifdef _WIN32

//LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US

//#pragma code_page(1252)

//#endif //_WIN32

#ifdef APSTUDIO_INVOKED

//////////////////////////////////////////////////////////////

//

// TEXTINCLUDE

//

1 TEXTINCLUDE DISCARDABLE

BEGIN

"resource.h\0"

END

2 TEXTINCLUDE DISCARDABLE

BEGIN

"#include ""afxres.h""\r\n"

"\0"

END

3 TEXTINCLUDE DISCARDABLE

BEGIN

"#define _AFX_NO_SPLITTER_RESOURCES\r\n"

"#define _AFX_NO_OLE_RESOURCES\r\n"

"#define _AFX_NO_TRACKER_RESOURCES\r\n"

"#define _AFX_NO_PROPERTY_RESOURCES\r\n"

"\r\n"

"#if !defined(AFX_RESOURCE_DLL)||defined(AFX_TARG_ENU)\r\n"

"#ifdef _WIN32\r\n"

"LANGUAGE 9, 1\r\n"

"#pragma code_page(1252)\r\n"

"#endif\r\n"

"#include ""res\\Dater.rc2"" // non-Microsoft Visual C++

// edited resources\r\n"

"#include ""afxres.rc"" // Standard components\r\n"

"#include ""afxdb.rc"" // Database resources\r\n"

"#endif\0"

END

#endif // APSTUDIO_INVOKED

//////////////////////////////////////////////////////////////

//

// Icon

//

IDR_MAINFRAME ICON DISCARDABLE "res\\Dater.ico"

IDR_DATERTYPE ICON DISCARDABLE "res\\DaterDoc.ico"

//////////////////////////////////////////////////////////////

//

// Bitmap

//

IDR_MAINFRAME BITMAP MOVEABLE PURE "res\\Toolbar.bmp"

//////////////////////////////////////////////////////////////

//

// Toolbar

//

IDR_MAINFRAME TOOLBAR DISCARDABLE 16, 15

BEGIN

BUTTON ID_EDIT_CUT

BUTTON ID_EDIT_COPY

BUTTON ID_EDIT_PASTE

SEPARATOR

BUTTON ID_FILE_PRINT

SEPARATOR

BUTTON ID_RECORD_FIRST

BUTTON ID_RECORD_PREV

BUTTON ID_RECORD_NEXT

BUTTON ID_RECORD_LAST

SEPARATOR

BUTTON ID_APP_ABOUT

END

//////////////////////////////////////////////////////////////

//

// Menu

//

IDR_MAINFRAME MENU PRELOAD DISCARDABLE

BEGIN

POPUP "&File"

BEGIN

MENUITEM "E&xit", ID_APP_EXIT

END

POPUP "&Edit"

BEGIN

MENUITEM "&Undo\tCtrl+Z", ID_EDIT_UNDO

MENUITEM SEPARATOR

MENUITEM "Cu&t\tCtrl+X", ID_EDIT_CUT

MENUITEM "&Copy\tCtrl+C", ID_EDIT_COPY

MENUITEM "&Paste\tCtrl+V", ID_EDIT_PASTE

END

POPUP "&Record"

BEGIN

MENUITEM "&First Record", ID_RECORD_FIRST

MENUITEM "&Previous Record", ID_RECORD_PREV

MENUITEM "&Next Record", ID_RECORD_NEXT

MENUITEM "&Last Record", ID_RECORD_LAST

END

POPUP "&View"

BEGIN

MENUITEM "&Toolbar", ID_VIEW_TOOLBAR

MENUITEM "&Status Bar", ID_VIEW_STATUS_BAR

END

POPUP "&Help"

BEGIN

MENUITEM "&About Dater...", ID_APP_ABOUT

END

END

//////////////////////////////////////////////////////////////

//

// Accelerator

//

IDR_MAINFRAME ACCELERATORS PRELOAD MOVEABLE PURE

BEGIN

"Z", ID_EDIT_UNDO, VIRTKEY, CONTROL

"X", ID_EDIT_CUT, VIRTKEY, CONTROL

"C", ID_EDIT_COPY, VIRTKEY, CONTROL

"V", ID_EDIT_PASTE, VIRTKEY, CONTROL

VK_BACK, ID_EDIT_UNDO, VIRTKEY, ALT

VK_DELETE, ID_EDIT_CUT, VIRTKEY, SHIFT

VK_INSERT, ID_EDIT_COPY, VIRTKEY, CONTROL

VK_INSERT, ID_EDIT_PASTE, VIRTKEY, SHIFT

VK_F6, ID_NEXT_PANE, VIRTKEY

VK_F6, ID_PREV_PANE, VIRTKEY, SHIFT

END

//////////////////////////////////////////////////////////////

//

// Dialog

//

IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 217, 55

STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU

CAPTION "About Dater"

FONT 8, "MS Sans Serif"

BEGIN

ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20

LTEXT "Dater Version 1.0", IDC_STATIC, 40, 10, 119, 8, SS_NOPREFIX

LTEXT "Copyright © 1996", IDC_STATIC, 40, 25, 119, 8

DEFPUSHBUTTON "OK",IDOK,178,7,32,14,WS_GROUP

Читать дальше
Тёмная тема

Шрифт:

Сбросить

Интервал:

Закладка:

Сделать


Александр Фролов читать все книги автора по порядку

Александр Фролов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 отзывы


Отзывы читателей о книге Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2, автор: Александр Фролов. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
Большинство книг на сайте опубликовано легально на правах партнёрской программы ЛитРес. Если Ваша книга была опубликована с нарушениями авторских прав, пожалуйста, направьте Вашу жалобу на PGEgaHJlZj0ibWFpbHRvOmFidXNlQGxpYmtpbmcucnUiIHJlbD0ibm9mb2xsb3ciPmFidXNlQGxpYmtpbmcucnU8L2E+ или заполните форму обратной связи.
img img img img img