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

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

Александр Фролов - 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 - читать книгу онлайн бесплатно, автор Александр Фролов
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Многие офисные приложения, и сама среда Microsoft Visual C++, использует панель состояния подобным образом. Так, например, когда вы сохраняете документ в текстовом процессоре Microsoft Word, то в панели состояния отображается линейный индикатор progress bar, отражающий процесс сохранения документа.

Методика размещения полосы progress bar на панели состояния достаточно проста. В тот момент, когда потребуется вывести полосу progress bar, просто создайте ее, указав в качестве родительского окна панель состояния. Координаты линейного индикатора progress bar желательно выбрать таким образом, чтобы он отображался на месте одного из индикаторов. Предварительно вы можете убрать рамку с этого индикатора и заблокировать его так, чтобы в нем не отображался текст.

Приложение Status

Создайте новый проект под названием Status. В качестве типа приложения выберите из списка Type строку Application. Настройте проект Status, указав, что приложение будет работать с библиотекой классов MFC.

Наберите в редакторе исходный текст приложения и сохраните его в файле Status.cpp (листинг 3.13). Включите готовый файл DialogBar.cpp в проект.

Листинг 3.13. Файл Status.cpp

//============================================================

// Приложение Status

// (c) Frolov G.V., 1996

// E-mail: frolov@glas.apc.org

//============================================================

// Включаемые файлы для MFC

#include

#include

#include

// Включаемый файл для ресурсов приложения и идентификаторов

#include "resource.h"

//============================================================

// Класс CStateApp – главный класс приложения

//============================================================

class CStateApp : public CWinApp {

public:

// Мы будем переопределять метод InitInstance,

// предназначенный для инициализации приложения

virtual BOOL InitInstance();

};

// Создаем объект приложение класса CStateApp

CStateApp StateApp;

//============================================================

// Класс CStateWindow – представляет главное окно

//============================================================

class CStateWindow : public CFrameWnd {

protected:

CStatusBar m_wndStatusBar; // Панель состояния

BOOL bIndicatorTEXT; // Флаг для управления

// индикатором

// ID_INDICATOR_TEXT

protected:

// Метод для создания окна приложения и панели состояния

afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

public:

// Объявляем конструктор класса CStateWindow

CStateWindow();

// Объявляем методы для обработки команд меню

afx_msg BOOL OnMenuDirectADD_SUB(UINT nID);

afx_msg void OnMenuProcessBar();

afx_msg void OnMenuDisableADD_SUB();

afx_msg void OnMenuSwitchTEXT();

afx_msg void OnMenuExit();

// Метод для обработки команды ON_UPDATE_COMMAND_UI

// от индикатора ID_INDICATOR_TEXT

afx_msg void OnUpdateTEXT(CCmdUI* pCmdUI);

// Макрокоманда необходима, так как класс

// CStateWindow обрабатывает сообщения

DECLARE_MESSAGE_MAP()

};

//============================================================

// Таблица сообщений класса CStateWindow

//============================================================

BEGIN_MESSAGE_MAP(CStateWindow, CFrameWnd)

// Макрокоманда вызывает метод OnCreate

ON_WM_CREATE()

// Обработчик сообщения ON_UPDATE_COMMAND_UI

ON_UPDATE_COMMAND_UI(ID_INDICATOR_TEXT, OnUpdateTEXT)

// Обработчики команд меню Work

ON_COMMAND(ID_WORK_PROCESS, OnMenuProcessBar)

ON_COMMAND(ID_WORK_DISABLE_ADDSUB, OnMenuDisableADD_SUB)

ON_COMMAND(ID_WORK_ON_SWITCH_TEXT, OnMenuSwitchTEXT)

ON_COMMAND_EX(ID_WORK_DIRECT_ADD, OnMenuDirectADD_SUB)

ON_COMMAND_EX(ID_WORK_DIRECT_SUB, OnMenuDirectADD_SUB)

ON_COMMAND(ID_WORK_EXIT, OnMenuExit)

END_MESSAGE_MAP()

//============================================================

// Индикаторы панели управления. Порядок идентификаторов

// соответствует порядку индикаторов в панели состояния

// (до тех пор, пока он не изменен методом SetPaneInfo)

//============================================================

static UINT indicators[] = {

ID_SEPARATOR, // Самый первый индикатор

ID_INDICATOR_OVR, // Индикатор OVR

ID_INDICATOR_PROGRESS, // Резервирование места для

// progress bar

ID_INDICATOR_CAPS, // Индикатор клавиши

ID_INDICATOR_NUM, // Индикатор клавиши

ID_INDICATOR_SCRL, // Индикатор клавиши

ID_INDICATOR_TEXT, // Индикатор TEXT/PIC

ID_INDICATOR_ADD, // Индикатор ADD/SUB (начальное

// состояние START)

};

//============================================================

// Метод InitInstance класса CStateApp

// Создает главное окно приложения и отображает его на экране

//============================================================

BOOL CStateApp::InitInstance() {

m_pMainWnd = new CStateWindow();

m_pMainWnd->ShowWindow(m_nCmdShow);

m_pMainWnd->UpdateWindow();

return TRUE;

}

//============================================================

// Конструктор класса CStateWindow

//============================================================

CStateWindow::CStateWindow() {

// Создаем окно приложения, соответствующее

// данному объекту класса CStateWindow

Create(NULL, "Status Bar Sample", WS_OVERLAPPEDWINDOW, rectDefault, NULL, MAKEINTRESOURCE(IDR_MENU));

// Устанавливаем значение флага bIndicatorTEXT

bIndicatorTEXT = TRUE;

}

//============================================================

// Метод OnMenuProcessBar класса CStateWindow

//============================================================

void CStateWindow::OnMenuProcessBar() {

// Определяем координаты индикатора ID_INDICATOR_PROGRESS

RECT rectProgress;

m_wndStatusBar.GetItemRect(m_wndStatusBar.CommandToIndex(ID_INDICATOR_PROGRESS), &rectProgress);

// Создаем полосу progress bar. Размещаем ее

// на месте индикатора ID_INDICATOR_PROGRESS

CProgressCtrl ctrlProgressBar;

if (!ctrlProgressBar.Create(WS_CHILD | WS_VISIBLE, rectProgress, &m_wndStatusBar, 1)) {

// Ошибка при создании progress bar

TRACE0("Failed to create progress bar\n");

return;

}

// Устанавливаем границы для progress bar

ctrlProgressBar.SetRange(0, 100);

// Устанавливаем шаг приращения для progress bar

ctrlProgressBar.SetStep(1);

// Плавно увеличиваем положение progress bar

for (int i=0; i<100; i++) {

// Выполняем короткую задержку

Sleep(10);

// Выполняем шаг приращения progress bar

ctrlProgressBar.StepIt();

}

// По завершении, отображаем текст в самом первом

// индикаторе панели состояния

m_wndStatusBar.SetWindowText("Process completed");

}

//============================================================

// Метод OnMenuDirectADD_SUB класса CStateWindow

//============================================================

BOOL CStateWindow::OnMenuDirectADD_SUB(UINT nID) {

// Определяем индекс индикатора ID_INDICATOR_ADD

int nIndex = m_wndStatusBar.CommandToIndex(ID_INDICATOR_ADD);

// Устанавливаем нормальный режим отображения индикатора

m_wndStatusBar.SetPaneStyle(nIndex, SBPS_NORMAL);

// Из меню Work выбрана строка Direct set ADD

if (nID == ID_WORK_DIRECT_ADD) {

// Выводим текст ADD

m_wndStatusBar.SetPaneText(nIndex, "ADD");

}

// Из меню Work выбрана строка Direct set SUB

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


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

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




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


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


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

Напишите свой комментарий
x