Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Янг Майкл Дж. -> "Visual С++ 6. Полное руководство: В 2 т.(том2)" -> 63

Visual С++ 6. Полное руководство: В 2 т.(том2) - Янг Майкл Дж.

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том2) — Бином, 2006. — 530 c.
Скачать (прямая ссылка): vicualcc2006t2.djvu
Предыдущая << 1 .. 57 58 59 60 61 62 < 63 > 64 65 66 67 68 69 .. 173 >> Следующая

}
Параметры сх и су, переданные в OnSize, содержат текущие размеры окна представления в единицах устройства (пикселях).
После вызова функции OnSize окно представления очищается, а для перерисовки окна вызывается функция OnDraw. Последняя функция вызывается также при перерисовке окна представления по какой-либо причине (например, из-за удаления перекрывающего окна). Функция OnDraw не рисует непосредственно узор. Она переустанавливает столбец в 0 таким образом, что функция DrawCoJ начинает перерисовывать рекурсивный узор (один столбец за один раз), начиная с первого столбца. Законченное определение функции OnDraw выглядит следующим образом.
///////////////////////////////////////////////////////////////// // Отображение окна класса CMandelview
void CMandelview::OnDraw(CDC* pDC) i
CMandelDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc);
// TODO: здесь добавьте код отображения собственных данных m_Col = 0;
m_CR = (float)CRMIN;
i
Теперь можно настроить значок программы, следуя описанным выше инструкциям. На рис. 19.6 приведен значок программы Mandel, содержащийся на прилагаемом компакт-диске.
Наконец, откройте файл Mandel.срр и добавьте обычный вызов функции SetWindowText в функцию Initlnstance.
// Единственное окно приложения отображается и обновляется m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow() ;
m_pMainWnd->SetWindowText ("Mandelbrot Demo");
return TRUE }
Теперь программу Mandel можно построить и выполнить.
Ш Mandel.rc - ID R_MAI N FR AM E (Icon) ВЁОЁЗ
Рис. 19.6. Значок программы Mandel из прилагаемого компакт-диска, отображаемый в графическом редакторе Visual С++
Исходный код программы Mandel. В следующих листингах (19.1 — 19.8) приведены исходные тексты программы Mandel. Исходные файлы программы находятся в каталоге \Mandel прилагаемого компакт-диска.
Листинг 19.1
// Mandel.h : главный файл заголовков приложения MANDEL //
#if !defined(
AFX_MANDEL_H__A3F5D265_A63C_11D1_80FC_00C0F6A83B7F_INCLUDED_)
#define AFX_MANDEL_H_A3F5D265_A63C_llDl_8OFC_00C0F6A83B7F_INCLUDED_
#if _MSC_VER > 1000 #pragma once
#endif // _MSC_VER > 1000
#ifndef _AFXWIN_H_
terror include 'stdafx.h' before including this file for PCH #endif
#include "resource.h" // основные символические константы
1111 II 11111 II 11//1111111111 II I/II II 111111 II 11 III 111111111 II 111111111111 II Класс CMandelApp:
// Смотрите реализацию этого класса в файле Mandel.срр //
class CMandelApp : public CWinApp {
public:
CMandelApp();
// Переопределения
// Переопределения виртуальных функций, сгенерированные // мастером ClassWizard //{{AFX_VIRTUAL(CMandelApp) public:
virtual BOOL Initlnstance(); virtual BOOL OnIdle(LONG ICount); //}}AFX_VIRTUAL
// Реализация
//{{AFX_MSG(CMandelApp) afx_msg void OnAppAbout();
// ПРИМЕЧАНИЕ - Мастер ClassWizard будет добавлять //и удалять здесь функции-члены класса.
// НЕ РЕДАКТИРУЙТЕ текст в этих блоках сгенерированного кода! //})AFX_MSG DECLARE_MESSAGE_MAP()
);
11111 II 111111/11111 II 1111111111111111 II 11111111111111111111111111 II I
IH{AFX_INSERT_LOCATION)}
// Visual С++ вставит дополнительные объявления // сразу перед предыдущей строкой
#endif
//!defined(AFX_MANDEL_H_A3F5D265_A63C_11D1_80FC_00C0F6A83B7F_INCLUDED_)
Листинг 19.2
// Mandel.cpp : Определяет работу класса приложения //
#include "stdafx.h" #include "Mandel.h"
#include "MainFrm.h" #include "MandelDoc.h" iinciude "Mandelview.h"
#ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE
static char THIS_FILE[] = _FILE_;
#endif
1111111111111111111111111111111111111111111II1111111111111111 i I i 111 II Класс CMandelApp
BEGIN MESSAGE_MAP(CMandelApp, CWinApp) //{(AFX_MSG_MAP(CMandelApp) ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
/'/ ПРИМЕЧАНИЕ - Мастер ClassWizard будет добавлять //и удалять здесь макросы соответствия
/'/ НЕ РЕДАКТИРУЙТЕ текст в этих блоках сгенерированного кода! //}}AFX_MSG_MAP
/'/ Команды работы с файлами документов ON_CCKMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFiieOpen) END_MESSAGE_MAP()
/11711111I11I /11111111171111111111111111111111111111111111111I1 /I!I,
II Конструктор CMandelApp
CMandelApp::CMandelApp()
// TODO: Здесь добавьте собственный конструктор, поместите II основные команды инициализации в функцию Initlnstance
t
III I III II I!111II111II111И III I!ilHI I!11111/iIII11111iIIII111111II I, II Единственный объект класса CMandelApp
CMandelApp theApp;
III111111111111/111П1111111HIIII/111111П1111111111111111111111111 11 Инициализация класса CMandeJApp
BOOL CMandelApp::Initlnstance()
{
// Стандартная инициализация.
// Если вы не используете эти функции и хотите уменьшить
// размер исполняемого модуля, удалите ненужные
// команды, выполняющие специфическую инициализацию.
#ifdef _AFXDLL
Enable3dControls(); // Вызывается при использовании MFC // в режиме совместного доступа.
#else
ЕпаЫe3dControlsStatic(); // Вызывается при статической
// компоновке библиотеки MFC.
#endif
// Измените раздел реестра, в котором будут сохранены установки. // Вы можете заменить эти строки более подходящим текстом, // например названием вашей компании или организации. SetRegistryKey (_Т ("Local AppWizard-Generated Applications") ) ; LoadStdProfileSettings(); II Загрузка стандартных установок
Предыдущая << 1 .. 57 58 59 60 61 62 < 63 > 64 65 66 67 68 69 .. 173 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100