void CNotePadView::OnEditCopy()
{
CEditView::OnEditCopy();
UpdateViewWindow();
}
void CNotePadView::OnEditCut()
{
CEditView::OnEditCut();
UpdateViewWindow();
}
void CNotePadView::OnEditPaste()
{
CEditView::OnEditPaste();
UpdateViewWindow();
}
void CNotePadView::OnEditUndo()
{
CEditView::OnEditUndo();
UpdateViewWindow();
}
Теперь можно запустить приложение и убедиться, что соответствующие пункты меню работают нормально.
15. Теперь нужно в списке файлов отображать только файлы с определенным расширением (в нашем случае это файлы с расширением. txt). Для этого на имени класса CNotePadApp в окне ClassView надо сделать двойной щелчок, найти в раскрывшемся дереве членов класса метод OnInitInstance() и двойным щелчком на нем открыть в редакторе реализацию этого метода. Затем нужно найти вызов конструктора шаблона документа pDocTemplate = new CCeDocList-DocTemplate и переписать так, как показано в листинге 5.23.
Листинг 5.23
pDocTemplate = new CCeDocListDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CNotePadDoc),
RUNTIME_CLASS(CMainFrame), // main SDI frame window
RUNTIME_CLASS(CNotePadView),
CString(_T(В«Text Files|*.txt||В»)));
16. Но и это еще не все. Необходимо сделать так, чтобы отображаемые в списке файлы открывались в редакторе при двойном щелчке на их имени. Для этого нужно открыть в окне класс CNotePadDoc, найти метод Serialize(CArchive& ar) и заменить код его реализации следующей строкой:
((CEditView*)m_viewList.GetHead())->SerializeRaw(ar);
Больше ничего делать не нужно! Сериализация в MFC – страшная сила. Одна строка позволяет приложению сохранять и открывать нужный файл правильным образом.
Можно было бы еще многое сделать с этим приложением, но цель упражнения уже достигнута. Мы ознакомились с принципом работы мастеров, при помощи которых создаются методы, обработчики и другие элементы класса. Об MFC написано достаточно много толстых томов, и при всем желании я бы не смог уместить даже краткую справочную информацию в формат данной книги.
Развитие функциональности приложения NotePad можно увидеть в примере, размещенном в каталоге C: Program FilesWindows CE Toolswce420POCKET PC 2003 SamplesMfcNpp. Рассмотрев код примеров, можно достаточно быстро освоить эту странную технологию. Некоторые аспекты работы приложений с ее помощью делаются очень громоздко, а некоторые – очень легко. Часть структуры классов понятна интуитивно, а какие-то аспекты без долгого чтения справочной литературы никак не понять. Тем не менее, если бы пришлось создавать такое приложение без использования MFC, кода пришлось бы писать намного больше.
Следует помнить, что при использовании MFC не нужно игнорировать работу мастеров и менять структуру приложения вручную. Поскольку на каждом этапе своей работы мастер вносит изменения в несколько файлов сразу, такая попытка может привести к полной потере работоспособности приложения.
Глава 6 NET Compact Framework и разработка программ для Pocket PC в Microsoft Visual Studio.NET 2003
Не покривлю душой, если скажу, что мы переходим к одной из самых интересных частей книги. На самом деле, еще совсем недавно технология. NET вызывала у меня вполне законные опасения. Уж очень это все было похоже на Java, только выглядело менее надежно и более громоздко. Все признаки были налицо. Язык C# оказался просто лингвистическим двойником Java, приложение компилировалось в промежуточный код, а исполнялось средой выполнения. Оказалось, что на самом деле все не так просто. Промежуточный код компилируется в исполняемый код того процессора, на котором запускается приложение, а среда исполнения не является виртуальной машиной, интерпретирующей промежуточный код, она, скорее, похожа на специфический отладчик. Зато средства разработки для. NET просты в использовании, язык C# сильно отличается от Microsoft Visual C++ в лучшую сторону, а программисты на Visual Basic могут перейти к программированию на Visual Basic.NET практически без усилий.
Ответить РЅР° РІРѕРїСЂРѕСЃ: «Что такое. NETВ» – РЅРµ очень просто. Рзначально Microsoft позиционировала СЃРІРѕРµ РЅРѕРІРѕРµ начинание как базирующуюся РЅР° веб-сервисах технологию, которая соединяет информацию, людей, системы Рё устройства. Такое утверждение может создать устойчивое впечатление, что. NET – это РІ первую очередь сетевая технология. РќР° самом деле. NET – это общее понятие, которое объединяет РІ себе РѕРіСЂРѕРјРЅСѓСЋ исследовательскую работу, проделанную Microsoft, РїРѕ созданию практически РЅРѕРІРѕР№ распределенной операционной среды. Технология. NET насыщена как новыми решениями, так Рё весьма прозрачными заимствованиями РёР· РѕРіСЂРѕРјРЅРѕРіРѕ количества источников.
Реализации. NET
В настоящий момент существует несколько реализаций того, что мы называем. NET.
1. NET Framework – версия среды выполнения для серверных и настольных компьютеров с операционной системой Microsoft Windows. Она поставляется в составе операционных систем Windows XP Tablet Edition и Windows Server 2003. Для других версий Windows.NET Framework может быть свободно загружена с сайта Microsoft.
2. NET Compact Framework – среда выполнения для платформ на основе Windows CE.
3. Shared Source Common Language Infrastructure (CLI) – открытый исходный код для наиболее значимых классов CLI. Может быть загружена с сайта Microsoft.
4. DotGNU – проект GNU, развивающий реализацию. NET Framework для платформ с открытым исходным кодом. Подробности этого проекта можно узнать на сайте dotgnu.org.