Алекс Jenter - Программирование на Visual C++. Архив рассылки
- Название:Программирование на Visual C++. Архив рассылки
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Алекс Jenter - Программирование на Visual C++. Архив рассылки краткое содержание
РАССЫЛКА ЯВЛЯЕТСЯ ЧАСТЬЮ ПРОЕКТА RSDN, НА САЙТЕ КОТОРОГО ВСЕГДА МОЖНО НАЙТИ ВСЮ НЕОБХОДИМУЮ РАЗРАБОТЧИКУ ИНФОРМАЦИЮ, СТАТЬИ, ФОРУМЫ, РЕСУРСЫ, ПОЛНЫЙ АРХИВ ПРЕДЫДУЩИХ ВЫПУСКОВ РАССЫЛКИ И МНОГОЕ ДРУГОЕ.
Программирование на Visual C++. Архив рассылки - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Common Language Specification (CLS). Да, хорошо сформулированные спецификации являются, пожалуй, самой сильной стороной .NET. Как известно, ни одна технология или платформа не может стать стандартом без спецификаций. .NET, как и COM, является языконезависимой платформой. CLS определяет набор спецификаций, которым должен соответствовать язык программирования, чтобы стать частью .NET. Разумеется, язык должен быть объектно-ориентированным, он должен поддерживать пространства имен. Запрещается множественное наследование, вместо этого вводится концепция интерфейса и множественное наследование интерфейса. Все это делает разницу между языками достаточно тривиальной. В наши дни, для написания программ, программисты пользуются библиотеками объектов. .NET имеет одну большую библиотеку объектов для всех языков. Точнее библиотека является частью CLR, и соответственно доступна для всех языков в платформе. Библиотека эта очень велика. Она состоит из множества пространств имен, каждое из которых в свою очередь содержит классы или другие пространства имен. [Здесь мне почему-то приходит в голову высказывание Роберта Хайнлайна о том, что слон – это мышь, выполненная по государственным спецификациям ;) – AJ]
И наконец о месте VC в новой платформе. Хочу обрадовать читателей, что для VC была отведена особая роль. Так как сам язык C++ не очень соответствует спецификации CLS, то его пришлось немного изменить. Такой измененный язык называется VC managed extension. Однако это не главное! Главное то, что VC остается единственным средством для производства 'unmanaged code', т.е. – программа компилируется в машинные коды и работает не под управлением CLR, а сама по себе.
Итак, какие же преимущества мы получим с переходом на .NET? Первое, и главное – платформонезависимость. Хоть на данный момент доступна только одна платформа – Windows 2000, Microsoft обещает, что CLR будет доступна для всех основных платформ. Второе – языконезависимость. .NET программы могут разрабатываться на любых из более чем 40 уже доступных языков. При этом предоставляется очень высокий уровень интеграции. Облегчается задача разработчика, так как CLR берет на себя часть рутинных задач. А также большая и удобная в использовании библиотека объектов.
А недостатки? О недостатках пока говорить рано. Как говориться «знал бы, где упал».
Возможно, мне так и не удалось ответить на вопрос – что же такое .NET? Грандиозный успех, или грандиозный провал – время покажет. Ясно одно, .NET – это самый значительный шаг Microsoft за последнее время. Важнее даже чем Windows 2000 и X-Box. Грядет революция, и рано или поздно нам придется с этим считаться. Мое мнение – лучше рано, чем поздно.
Несколько полезных ссылок:
Тут можно скачать NGWS SDK
Сайт с кучей полезных ресурсов по .NET
Также сайт посвященный C#
И разумеется первоисточник
Здраствуйте Алекс. Спасибо за Вашу рассылку, я с удовольствием читаю ее с первого выпуска. Прочитав выпуск №19 решил обратить Ваше внимание на, как мне кажется, более новый способ создания паналей инструментов различного внешнего вида (а'ля Internet Explorer и т.п.) Для этих целей в MFC появился класс CReBar позволяющий размещать на панели инструментов не только кнопки но и практически любые объекты произошедшие от CWnd и имеющие стиль WS_CHILD. Как правило в качестве таких объектов выступают экземпляры классов CToolBar и CDialogBar. Более подробно об этом можно прочитать в MSDN.
D. Kosyrevsky.Использование CReBar действительно в некоторых случаях оправданно. Но необходимо знать, что у ReBar существует ряд существенных ограничений. В частности, они не могут быть "плавающими" и стыковаться с границами окна.
Что касается постановки вопроса: "сделать тулбар а'ля WinZip – большие иконки, с подписями…", так это можно сделать в редакторе ресурсов просто "растянув" изображение до нужного размера и написав все, что нужно (естественно, надписи будут статическими). Что же касается размещения элементов управления на панели инструментов за счет "расширения" сепараторов, то это действительно интересно и, главное, более гибко и удобно, чем создание DialogBar.
Евгений Шмелев.Вряд ли статический (т.е. являющийся частью изображения ) текст кого-либо устроит. Это, конечно, можно сделать, но вообще-то это не принято.
Q. Как создать такое окно (или это диалогбар?) как Workspace в Visual Studio? То есть, я представляю, что если это диалогбар со списком, то какие стили применить в Create, чтобы его можно было "переносить" и изменять размер?
СашАНа этот вопрос было получено удивительно мало ответов. Неужели этим почти никто не интересовался?
A 1 Среди заголовочных файлов MFC есть заголовочный файл afxpriv.h, в котором объявлено несколько недокументированных классов, в том числе например класс CDockBar. По-моему именно он обеспечивает создание окон в стиле Visual Studio.
AntonЯ хотел бы предостеречь читателей: использование недокументированных классов чревато неприятностями. В том же MSDN написано, что члены и методы класса CDockBar, скорее всего, претерпят сильные изменения в будущем.
A 2 Во время оно я боролся с этим вопросом. Вот краткие выводы: DialogBar – ДЕРЬМО. Проще сходить на сайт http://www.datamekanix.comи слить оттуда компонент CSizingControlBar написанный Crisite Posea. Он тоже не предел совершенства, но работает почти так же как и Workspace.
Vassili BourdoХочу добавить (как еще один вариант), что я кажется видел класс с такой же функциональностью в Ultimate Toolbox от Dundas Software.
Q. У меня есть приложение MFC на базе диалога. Я решил организовать переключение некоторых режимов через главное меню, т.е. в меню присутствуют названия режимов и активный в данный момент режим помечен точкой. Для этого я создал обработчики ON_UPDATE_COMMAND_UI для соответствующих пунктов меню и в них вызов СCmdUI::SetRadio(). Например:
void CHeatDlg::OnUpdateSolve(CCmdUI* pCmdUI) {
if (mode == 1) pCmdUI->SetRadio(TRUE);
else pCmdUI->SetRadio(FALSE);
}
Это не сработало. Похоже, что сообщения ON_UPDATE_COMMAND_UI просто не посылаются. До этого я использовал такой же подход в приложениях SDI и MDI и все работало. Есть какие-нибудь мысли по этому поводу?
Андрей МоисеевУспехов!
Алекс Jenter jenter@mail.ru Красноярск, 2000.Программирование на Visual C++
Выпуск №21 от 29 октября 2000 г.
Все настоящие программисты делятся на три категории: на тех, кто пишет программы, завершающиеся по нажатию F10, Alt-F4 и Alt-X. Все остальные принципы деления надуманны.
авт. неизв.Рад снова приветствовать вас!
Сегодняшний выпуск посвящен вашим письмам с вопросами, ответами, комментариями, замечаниями и дополнениями, которых у меня накопилось изрядное количество.
Q. У меня есть приложение MFC на базе диалога. Я решил организовать переключение некоторых режимов через главное меню, т.е. в меню присутствуют названия режимов и активный в данный момент режим помечен точкой. Для этого я создал обработчики ON_UPDATE_COMMAND_UI для соответствующих пунктов меню и в них вызов СCmdUI::SetRadio(). Например:
Читать дальшеИнтервал:
Закладка: