ebook img

Практикум прикладного программирования на MFC и C++ в среде VS.NET PDF

821 Pages·2016·93.579 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Практикум прикладного программирования на MFC и C++ в среде VS.NET

В.М. СНem:JБ Практикум прикладного программирования на МРС и С++ в среде VS.NET 2-е издание, исправленное Снетков В.М. Национальный ОжРЬПЫЙ Университет "интуит" 2016 , В.М. CHem:JB Пракmкум приклцного прогр"-,,мирования на MFC н С. + в среде VS.NET Пракшкум прикладного программирования иа MFC и С++ в среде VS.NEfI В.М. CHe1"КDB -М.: Нациоиальный ОткРЫ1ЫЙ Университет "ИНТУИТ", 2016 В курсе представлены лабораторные раБOlЫ, Ю)торые были подготовлены ДfIЯ сryдентов сразу после появления VS.NEf 2003. Материал базируется на применении MFC и С++. НеЮ)торые работы используют VCLC++Builder. Содержание курса oxвa1ыветT различные аспеКlЫ программирования оконных приложений на иеуправляемом С++. На учебных примерах описываются технологии разрабопш пользовательских библиотек и приложений в средах проекшрования VS.NEf 2003 и, 01'JаСП1, C++Builder 6.0. Большое внимание уделено применению ИНС1рументов новой, иа тот момеит, оболочки VS.NEf, Ю)торые в современных версиях в основе своей остались прежними. Несмотря на то, что в последних выпусках библиотека MFC сущеClВенно увеличила свою мощь, базовые принципы ее использования сохранились. поэтому представленный в курсе материал не потерял свою акryальиоClЪ и может быlЪ использован (возможно, с иезначительными дораБOl1(ами) ДfIЯ иачального обучения программированию. (с) 000 "ИНТУИТ.РУ", 2010-2016 (с) Cнe1"КDB В.М., 2010-2016 в.м. CHem:JB Пракmкум приклцного прогр"-,,мирования на MFC н С. + в среде VS.NET MFC 5DI-приложение В первой лекции вы изучите, что такое 5DI и MDI приложения. Выполните конструирование данных класса документа и класса представления. Для практической значимости выполните: отображение круга на экране, рисование круга в произвольной точке экрана. Сохранение и загрузка данных Документа. Изменение заголовка окна приложения и назначение фильтра. Изменение иконки приложения. Русификация меню. Текст в центре клиентской области. Спецификация задачи Файлы к данной лабораторной работе, Вы можете скачать здесь скачать: http://Oи . iпtШ. ruld epartment/se/p пnfсv/ 1 /р го gram. пр. 1. При запуске SDI -приложения внyrри окна представления в 20 точке х=200 , у=100 должен появиться круг радиусом пикселов. 2. Круг перерисовывается с центром в месте щелчка мыlШf. з. Можно сохранить круг в файле и считать его на экран. 4. Предусмотреть возможность печати круга на принтер. s. Основные пункты меню должны дУблироваться кнопками на панели инструментов. б. Пункты меню необходимо русифицировать. 7. Оформить требуемые подсказки в строке состояния главного окна­ рамки и всплывающие подсказки. 8. Вывести текст в центре окна документа. Приступим К решению поставленной задачи. Создание заготовки приложения • ~ Командой меню Fi le/New/Project вызовите окно мастера создания заготовки, выберите место размещения и задайте имя проекта С i r с 1 е , В.М. CHem:JB Пракmкум приклцного прогр"-,,мирования на MFC н С. + в среде VS.NET .lJ~ ,",',"'''',',",',''''''';:o;o'''''',--__ 11 [iI ,';orrvЫeo: =rms IntellQэrrn А"О)ЮS QR cmsole p'«cltatOO IiIYISL;3I~t !!!IAТL Pro.>J(1 $ У;ш"J С# u::t'~ofio> R-o)1ct ffi Yi"", J# liI Y;,u,! С+ + ~Tl Sm,.-t Dov>:o есОрсl liI о ...... R-ojoct TrP'" ~ E"l'tr Pro,~[t :t=мoe Д:~veX Ш-!Jоl ,~м=c Srrar! ce'~e Ас!"", Cct11:fol Ам=е s.-r...! Do'~~ CLl ~..,32 Smor!C<3'~~ РсОjoc! .lf'ВI'IO:icbw' 5er;~o ,пh Onlho To"l'''tw" LocatOO: "-О\Olm" ::::J Icro.1:o now Sou!bn Г Croote ct,ocbry for юutbn ~u'iOn~~:D' ГIС.~~~~---- • r;;;r Установите вюыДку Application Туре мастера MFC Appli cation Wizard в указанное состояние генерации SDI приложения И-С Аррl<оtiоп Wi,ord Corc!e '.0'.; .', Applic<dkm Typ~ чрtа00f11}ор8' ProjEC!sЦle: ~~\:atOO TJP3 r. :>;-,ge dccL.-r..-:t r \','mc.., E1I'n" Ccщ>cLrd ~! SLp:or\ rt!JJtple~ts r.""'C~d ="~"" Terцclate 51:frq3 r Q.i.~b.""d s'-',)pCrt U""of~C D,ru,эо Г <со ~r." 1'1">] (о "'О и=е .., ~ ,h..-od CLl u""г н..-f,ю, Fodll.", r UЭ!: мое.., ~ ,t>,~ Ih""l ACt';n:oo F8a1fe< Gooor3'Od С!;;С""" C"",~I в.м. CHem:JB Пракmкум приклцного прогр"-,,мирования на MFC н С. + в среде VS.NET • [;$' Состояние остальных ВЮIaДОК пусть останется установленным по умолчанию, а име,н~н;;о;;:=====::::::=:..,;~ И-С Аррl<оtiоп Wi,ord Corcle !!!! .1J~ D"tab"a;e Support D"taba93 sц:p:<1: .o.pplcatoo Туре (."~ Ccщ>c<.rd Doo.xnent SLp:ort (" fieЮ3" (*" "'~ =U~"" Terrpam 5trrq3 (" D.G!b,,"o ~iow w,1tJootfik> o~ Do\>t.±.e 5.+Р<>! (" oa~ ,~". w;tl, fle щ:p:f1 u,..,.-h!:!>-Г~F"d!l.<"" A"';n:OO FeaVes Gooor3'Od CI;>O<<>< Со"," СЕ. ~',;., ff.mo oty~: р Ih~, ij-ycc Р MГjrr)>E to: PM~"'rI'" ь", r M!:im;:ed Гма!I'r~Ю Ps.\'"",m"""", Р Abcct!;oo: r '''" (." SQ"dard lIxll1Q Pht,,"S~bif r Si1ltwnoo," Г Вra,;:= ct)k> HaMFC нС.+ 0,. ...... '_ A(N,.-.:OO reаы-ез' nt:IJrr IJe< 01 nles ()f1 roc""t (., I~t: .'.pplc,",oo Туре Г =te,t-ш-ыr.e~" Ссщ>сcrdDoo.xnentSLp:ort r Yl<nHolpf:O-rr« ,""",-пnr~, " H~~ ~oj~ Foт-rn.! D,ru,зо SL>,>PCrt р EYnt,-,. dПd prnt P""~ ".",... h'и"f.юо F.""".", Г A~toOl..tbn Р A<:t~"X aJ"ЦoI, Г МАР! (/-'<><'"'3"'3 АР!) Г ~sю;:kе:s Г Actwo 6o:o"Ibii'i Р СОm'Юl = 1fol Wi<lIE t На последней вкладке цифра 4 означает размер списка последних обработанных документов. • 1;$ Просмотрите все вкладки мастера и нажмите кнопку F i n i s h, чтобы мастер создал заготовку приложения • 1;$ в раскрывающемся списке Solution Configur ations поменяйте режим работы оболочки с Debug на Release, чтобы ОТЮlючить генерацию отладочного кода при сборке проекта • 1;$ Запустите заготовку, созданную мастером, на компиляцию и Buil d/Bui ld Solut ion, линковку командой а затем на Debug/Start Debugging (F5) выполнение командой Windows Появится полноценное окно с однодокументным интерфейсом ( SDI ) , в.м. CHem:JB Пракmкум приклцного прогр"-",,ирования на MFC н С. + в среде VS.NET ~. Untitled - Circle - о 2>.J Fie Edit Viw€ ~ Ready Конструирование данных класса документа в массе документа нам нужно добавить поля, в которых будуг храниться координаты центра БУдущего круга . • r;;;r Вызовите панель View/Soluti on Expl orer и в дереве файлов проекта двойным щелчком откройте на редактирование заголовочный файл Circ l eDoc . h • 1;$ Найдите объявление масса CCircl eDoc и добавьте в него объявления полей, которые будуг хранить координаты центра круга Объявления полей в массе документа CCircleDoc class CCircleDoc : public CDocument { protected: 11 create fгoт sегializatiоп опly CCircleDocO; , В.М. CHem:JB Пракmкум приклцного прогр"-,,мирования на MFC н С. + в среде VS.NET DECLARE_DYNCREAТE(CCirc!eDoc) 11 Аttгшutеs риыic: iпt ш_РоsХ; 1/ координата х (по горизонтали) центра круга iпt m_PosY; // координата у (по вертикали) центра круга I/ Operations риЬlic: ) в объявлении класса язык С++ не допускает инициализацию членов­ данных (кроме перечисления епит ). Поэтому инициализацию поместим в функцию-член масса, которая выполняется при создании нового документа. Для этого • r;;:.-- В раскрывающемся списке Functions in CCircleDoc (сведения о CCircleDoc ) выберите функцию-метод OnNewDocument() Именно функция OnNewDocument () срабатывает при создании . нового документа • U$ Внесите в функцию OnNewDocument () код инициализации объявленных координат круга Инициализация полей в функции ОnNеwDосшnепtО масса CCirc! BOOL CCircleDoc::OnN еwDосumeпtО { if (!СDосшnепt::ОnN еwDосumeпtО) геtшп FALSE; 1/ ТООО: add геinitializatiоп code here 1/ (SDI documents will reuse this document) ш_РоsХ = 200; ш_РоsУ = 100; , В.М. CHem:JB Пракmкум приклцного прогр"-,,мирования на MFC н С. + в среде VS.NET return ТRUE; ) Конструирование данных класса представления Схема "Документ-Представление" реализует отношение "один ко многим", т.е. одни и те же данные класса Документа можно по разному отображать пользователю в классах Представления. В нашем случае будет только одно представление данных Документа. Класс Представления ее i r с 1 е Vi ew будет выполнять непосредственное взаимодействие с пользователем и в нем тоже понадобятся поля для хранения координат центра круга. • [j.$' Через панель Solution Explor e r откройте заголовочный файл eircleView . h, найдите объявление класса eCircleView и внесите в него объявления переменных­ членов, которые будуг хранить координаты центра круга Объявления полей в классе представления CCircleView class CCircleView : public CView ( protected: 11 create fгoт serialization опly CCircIeVJt'wO; DECLARE_DYNCREAТE(CCirc!eView) 11 Аttrшutеs риыic: CCircleDoc* GetDocument() const; int m_PosX; 11 координата х (по горизонтали) центра круга int m_PosY; 11 координата у (по вертикали) центра круга II Operations риЬlic: ) ; Значения полей, хранящих координаты центра круга, в классе Документа и в классе Представления всегда должны совпадать, поэтому

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.