Для каких задач лучше использовать Windows Forms, а для каких MFC?
Верно ли рассматривать Windows Forms, как очередной, более новый этап в создании приложений под Windows, который в последствии сменит MFC и ей подобные? Или они идут параллельно?
Если такая постановка вопросов вообще верна.
juice
Я считаю, что для всех задач, в которых не требуются высокопроизводительные вычисления и параллельные алгоритмы обработки данных, лучше всего использовать .NET (WPF, Windows Forms, WCS. ).
В ином случае — что то другое. Не забывайте, что есть ещё и Visual C++ .NET (после программирования на нём — C# — просто сказка). Но зато, в нём (как и , наверное в Qt) есть поддержка OpenMP.
Различия в программировании Windows Forms/MFC Windows Forms/MFC Programming Differences
В разделах, посвященных использованию пользовательского элемента управления формы Windows Forms в MFC , ОПИСЫВАЕТСЯ поддержка MFC для Windows Forms. The topics in Using a Windows Form User Control in MFC describe the MFC support for Windows Forms. Если вы не знакомы с платформа .NET Framework или программированием MFC, в этом разделе содержатся фундаментальные сведения о различиях в программировании между ними. If you are not familiar with .NET Framework or MFC programming, this topic provides background information about programming differences between the two.
Windows Forms предназначен для создания приложений Microsoft Windows на платформа .NET Framework. Windows Forms is for creating Microsoft Windows applications on the .NET Framework. Эта платформа предоставляет современный, объектно-ориентированный и расширяемый набор классов, позволяющих разрабатывать Многофункциональные приложения на основе Windows. This framework provides a modern, object-oriented, extensible set of classes that enable you to develop rich Windows-based applications. С помощью Windows Forms вы можете создать многофункциональное клиентское приложение, которое может получать доступ к различным источникам данных и предоставлять средства для просмотра данных и редактирования данных с помощью элементов управления Windows Forms. With Windows Forms, you are able to create a rich client application that can access a wide variety of data sources and provide data-display and data-editing facilities using Windows Forms controls.
Однако, если вы привыкли к MFC, вы можете использовать для создания приложений некоторых типов, которые еще не поддерживаются в Windows Forms. However, if you are accustomed to MFC, you might be used to creating certain types of applications that are not yet explicitly supported in Windows Forms. Windows Forms приложения эквивалентны диалоговым приложениям MFC. Windows Forms applications are equivalent to MFC dialog applications. Однако они не предоставляют инфраструктуре прямую поддержку других типов приложений MFC, таких как сервер документов OLE, контейнер, документы ActiveX, поддержка документов и представлений для интерфейса с одним документом (SDI), многодокументный интерфейс (MDI) и несколько интерфейсов верхнего уровня (МТИ). However, they do not provide the infrastructure to directly support other MFC application types like OLE document server/container, ActiveX documents, the Document/View support for single-document interface (SDI), multiple-document interface (MDI), and multiple top-level interface (MTI). Для создания этих приложений можно написать собственную логику. You can write your own logic to create these applications.
Дополнительные сведения о Windows Forms приложениях см. в статье Введение в Windows Forms. For more information about Windows Forms applications, see Introduction to Windows Forms.
Следующие функции представления MFC или документов и команд маршрутизации не имеют эквивалентов в Windows Forms: The following MFC view or document and command routing features have no equivalents in Windows Forms:
Интеграция оболочки Shell integration
MFC обрабатывает команды динамического обмена данными (DDE) и аргументы командной строки, используемые оболочкой при щелчке правой кнопкой мыши по документу и выборе таких команд как открытие, изменение или печать. MFC handles the dynamic data exchange (DDE) commands and command-line arguments that the shell uses when you right-click a document and select such verbs as Open, Edit, or Print. Windows Forms не имеет интеграции оболочки и не реагирует на команды оболочки. Windows Forms has no shell integration and does not respond to shell verbs.
Шаблоны документов Document templates
В MFC шаблоны документов связывают представление, которое содержится в фрейме окна (в режиме MDI, SDI или МТИ), с открытым документом. In MFC, document templates associate a view, which is contained in a frame window (in MDI, SDI, or MTI mode), with the document you opened. Windows Forms не имеет эквивалента шаблонам документов. Windows Forms has no equivalent to document templates.
MFC регистрирует типы файлов документов и обрабатывает тип документа при открытии документа из оболочки. MFC registers document file types and processes the document type when opening a document from the shell. Windows Forms не поддерживает документы. Windows Forms has no document support.
Состояния документов Document states
MFC сохраняет «грязные» состояния для документа. MFC maintains dirty states for the document. Таким образом, когда вы закроете приложение, закройте Последнее представление, содержащее приложение, или завершите работу из Windows, MFC предложит сохранить документ. Therefore, when you close the application, close the last view that contains the application, or exit from Windows, MFC prompts you to save the document. Windows Forms не имеет эквивалентной поддержки. Windows Forms has no equivalent support.
В MFC имеется концепция команд. MFC has the concept of commands. В строке меню, панели инструментов и в контекстном меню можно вызвать одну и ту же команду, например вырезать и копировать. The menu bar, toolbar, and context menu can all invoke the same command, for example, Cut and Copy. В Windows Forms команды являются жестко привязанными событиями из определенного элемента пользовательского интерфейса (например, пункта меню); Поэтому необходимо явным образом подключить все командные события. In Windows Forms, commands are tightly bound events from a particular UI element (such as a menu item); therefore, you have to hook up all the command events explicitly. Можно также выполнить обработку нескольких событий с помощью одного обработчика в Windows Forms. You can also handle multiple events with a single handler in Windows Forms. Дополнительные сведения см. в разделе Подключение нескольких событий к одному обработчику событий в Windows Forms. For more information, see Connecting Multiple Events to a Single Event Handler in Windows Forms.
Маршрутизация команд Command routing
Маршрутизация команд MFC позволяет активному представлению или документу обрабатывать команды. MFC command routing enables the active view or document to process commands. Так как одна и та же команда часто имеет разные значения для различных представлений (например, при редактировании в режиме редактирования текста по-разному, чем в графическом редакторе), команды должны обрабатываться активным представлением. Because the same command often has different meanings for different views (for example, Copy behaves differently in text edit view than in a graphics editor), the commands need to be handled by the active view. Поскольку Windows Forms меню и панелях инструментов не имеют четкого представления об активном представлении, у вас не может быть другого обработчика для каждого типа представления для событий MenuItem. Click без написания дополнительного внутреннего кода. Because Windows Forms menus and toolbars have no inherent understanding of the active view, you cannot have a different handler for each view type for your MenuItem.Click events without writing additional internal code.
Механизм обновления команд Command update mechanism
В MFC имеется механизм обновления команд. MFC has a command update mechanism. Таким образом, активное представление или документ отвечает за состояние элементов пользовательского интерфейса (например, включение или отключение элемента меню или кнопки инструмента и состояния проверки). Therefore, the active view or document is responsible for the state of the UI elements (for example, enabling or disabling a menu item or tool button, and checked states). Windows Forms не имеет эквивалента механизма обновления команд. Windows Forms has no equivalent of a command update mechanism.
Что выбрать: mfc, api, winforms,qt или перейти на с#?
Односвязный список на MFC или API делаю курсовую, но никак не могу сладить с односвязным списком, видимо где-то ошибка в обращении с.
Подскажите, Win API или MFC? Добрый вечер! Люди добрые, вот какая ситуация: Надо начинать писать курсовую работу. На.
Win32 API, MFC, или Windows Forms? Здравствуйте! У меня очень простая задача на С++, нужно построить графики по точкам (данные из.
Что предпочтительнее: WinForms или WPF? Уважаемые программисты , обращаюсь к вам с просьбой , объяснить мне , как в современном мире.
winforms устарели, отдав брозду правления mfc. api — API от чего? Остаётся выбор: С++ + Qt — кроссплатформенные приложения C++ + MFC — windows C# + WPF — windows.
Если хотите приковать себя к виндам, то посмотрите на последний пункт, если не хотите — на первый.
Тематические курсы и обучение профессиям онлайн Профессия Разработчик на C++ (Skillbox) Архитектор ПО (Skillbox) Профессия Тестировщик (Skillbox)
Не нужно уже как лет 12. Есть превосходящие по всем параметрам альтернативы
winapi? Для оконных приложений категорически не нужно ибо слишком низкоуровнево.
Так себе, но всяко лучше предыдущих двух вариантов. Но если уж писать под C#, то имеет смысл взять WPF
В целом норм, но на любителя. Мне не нравится, что это целый framework который слишком много всего навязывает.
Для оконных приложений я считаю лучший вариант это sciter. Декларативная разметка, кроссплатформенность, небольшой размер.
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.
Как программно в Visual C++ (MFC или API) установить связь ODBC драйвера с файлом Access? Здравствуйте. Подскажите пожалуйста, как программно в Visual C++ (MFC или API) установить связь.
WPF или WinForms? Что учить, если только начинаешь изучать C#? Привет всем джедаям этого форума. Начинаю потихоньку ковырять C#, интересно и необычно после C++.
Есть ли NumericUpDown (как в WinForms) или что-нибудь аналогичное в WPF? Здравствуйте! Нужен элемент позволяющий пробегать по ряду значений в определенных границах с.
Реализация меню требует API level 9, а actionbar-11. Что выбрать? Реализация меню требует API level 9, а actionbar — 11. Разрываюсь на части из-за того, что не могу.
Что это SMS HTTP API или что-то другое? Доброго дня! Получил с сайта mlsit.ru готовую програмку для отправки смс с сайта. Который день.
Что выбрать — Amd a8 3530mx или intel core i5 2450 или i7 2670qm? Добрый день помогите выбрать процессор что мне лучше выбрать Amd a8 3530mx или intel core i5 2450.
Mfc или windows forms
Kirill123
Дата 15.7.2006, 14:40 (ссылка) | (нет голосов) Загрузка .
Профиль Группа: Участник Сообщений: 7 Регистрация: 17.6.2006
Репутация: нет Всего: нет
Здравствуйте. Вот решил изучить Visual C++ и не знаю, что лучше изучать: MFC или Windows Forms. Искал ответ на этот вопрос через поисковик, но ничего толкового не нашёл. Разъясните, пожалуйста, в чём плюсы и минусы у MFC или Windows Forms и что лучше начинать учить.
Kirill123
Дата 16.7.2006, 16:26 (ссылка) | (нет голосов) Загрузка .
Профиль Группа: Участник Сообщений: 7 Регистрация: 17.6.2006
Репутация: нет Всего: нет
0x07L
Дата 16.7.2006, 17:48 (ссылка) | (нет голосов) Загрузка .
Опытный
Профиль Группа: Участник Сообщений: 272 Регистрация: 10.6.2006 Где: Москва
Репутация: 1 Всего: 5
DeadSoul
Дата 16.7.2006, 17:53 (ссылка) | (нет голосов) Загрузка .
Эксперт
Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва
Репутация: 2 Всего: 11
Если Вы получили ответ на Ваш вопрос, то нажмите на «Вопрос решен».
Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected]
0x07L
Дата 16.7.2006, 20:20 (ссылка) | (нет голосов) Загрузка .
Опытный
Профиль Группа: Участник Сообщений: 272 Регистрация: 10.6.2006 Где: Москва
Репутация: 1 Всего: 5
Kefir
Дата 16.7.2006, 20:30 (ссылка) | (нет голосов) Загрузка .
«Hakuna Matata»
Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi
Репутация: нет Всего: 87
Цитата(DeadSoul @ 16.7.2006, 09:53 )
Kirill123, учи не С++, а С#(в том числе WinForms). За это денег больше платят
Это откуды факт?! Неправду говоришь.
Kirill123, учи лучше Windows Forms. Насколько мне известно, МФЦ, хоть и хорошая штука, но МС её забросил. Да и, как человек, учивший и МФЦ и формы могу сказать, что формы удобнее как-то. Хотя может некоторым больше нравится и мфц.
В общем, учи формы — не ошибёшься!
DeadSoul
Дата 16.7.2006, 20:38 (ссылка) | (нет голосов) Загрузка .
Эксперт
Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва
Репутация: 2 Всего: 11
Цитата(Kefir @ 16.7.2006, 20:30 )
Цитата(DeadSoul @ 16.7.2006, 09:53 ) Kirill123, учи не С++, а С#(в том числе WinForms). За это денег больше платят Это откуды факт?! Неправду говоришь.
За С++ под винду платят больше? Вы на сайтах работы бывали?
Если Вы получили ответ на Ваш вопрос, то нажмите на «Вопрос решен».
Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected]
Kefir
Дата 16.7.2006, 21:13 (ссылка) | (нет голосов) Загрузка .
«Hakuna Matata»
Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi
Репутация: нет Всего: 87
DeadSoul, а вы работали?
Я сам хоть и на шарпе пишу, но это не потому что за него платят больше. Это потому что о нравится больше. А то что за С++ платят меньше это утверждение безосновательное. Всё зависит от фирмы / проекта, т.е. конкретного случая. Только так.
Это сообщение отредактировал(а) Kefir — 16.7.2006, 21:16
takedo
Дата 16.7.2006, 21:16 (ссылка) | (нет голосов) Загрузка .
Опытный
Профиль Группа: Участник Сообщений: 501 Регистрация: 1.6.2005
Репутация: нет Всего: 3
Kefir
Дата 16.7.2006, 21:41 (ссылка) | (нет голосов) Загрузка .
«Hakuna Matata»
Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi
Репутация: нет Всего: 87
Цитата(takedo @ 16.7.2006, 13:16 )
самое лучшее это наверное писать на MASM
Цитата(takedo @ 16.7.2006, 13:16 )
MFC — штука, по которой есть книжки, и это хоть и не совсем крутая вещь, но на её базе можно чего -либо сделать хорошее и достаточно быстро.
А на формс ещё быстрее и удобнее.
Цитата(takedo @ 16.7.2006, 13:16 )
Только спросил ты вопрос на форуме под названием MFC
а что тут по твоему сидят люди, которые кроме мфц только и знают?
Цитата(takedo @ 16.7.2006, 13:16 )
спроси лучше на формуме по Basic
DeadSoul
Дата 16.7.2006, 21:47 (ссылка) | (нет голосов) Загрузка .
Эксперт
Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва
Репутация: 2 Всего: 11
Цитата(takedo @ 16.7.2006, 21:16 )
Я вообще не в курсе чего это такое
Это не говорит о Вас хорошо.
Цитата(Kefir @ 16.7.2006, 21:13 )
DeadSoul, а вы работали? Я сам хоть и на шарпе пишу, но это не потому что за него платят больше. Это потому что о нравится больше. А то что за С++ платят меньше это утверждение безосновательное. Всё зависит от фирмы / проекта, т.е. конкретного случая. Только так.
Если Вы получили ответ на Ваш вопрос, то нажмите на «Вопрос решен».
Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected]
Kefir
Дата 16.7.2006, 21:53 (ссылка) | (нет голосов) Загрузка .
«Hakuna Matata»
Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi
Репутация: нет Всего: 87
Цитата(DeadSoul @ 16.7.2006, 13:47 )
В среднем.
Предлагаю закончить этот разговор в связи с наличием разных точек зрения
vvpC
Дата 16.7.2006, 22:42 (ссылка) | (нет голосов) Загрузка .
Шустрый
Профиль Группа: Участник Сообщений: 68 Регистрация: 20.5.2006 Где: Москва
Репутация: нет Всего: нет
Цитата(Kefir @ 16.7.2006, 21:53 )
Предлагаю закончить этот разговор в связи с наличием разных точек зрения
Если знаешь API — пофигу на чем програмить для винды, а если не знаешь — опять же пофиг на чем макроскриптописательством заниматься. Уважаемый афтар, изучи программирование для виндовс на си и все вопросы отпадут(не обвиняйте в сишном шовинизме, просто это тот язык на котором частично написан кернел.длл -асм уж не обсуждаем ). скорее закрывайте тему.чел с басика(или делпхи) хочет по легкому программером стать — все заканчится матной перебранкой
Kirill123
Дата 16.7.2006, 23:44 (ссылка) | (нет голосов) Загрузка .
Профиль Группа: Участник Сообщений: 7 Регистрация: 17.6.2006
Репутация: нет Всего: нет
Теперь по порядку.
За Masm я вообще ничего не спрашивал, я говорю о высокоуровневом программировании. И, если взять платформу .NET, то думаю, что ассемблер скоро должен вообще потихоньку забыться. Программирование Win API я знаю, так как писал свои приложения под Windows с использованием API на cpp, потом подумал, что хватит фигнёй заниматься и надо переходить на более абстрактный уровень, и выбрал, конечно-же, Visual C++. И сразу столкнулся с проблемой. С чего начать. Все книжки, что я качал, были о MFC.. C другой стороны, на одном сайте прочитал, что Windows Forms более гибкая и что MFC уже умерло. Вот и насторожился: надо-ли учить программирование под MFC и тратить кучу сил и времени, если ту же задачу я могу выполнить с помощью Windows Forms, тем более, что она более сходна по интерфейсу с программированием VCL на том же Delphi и Builder. Только вот сайту тому верить я не решился, и обратился за помощью на сюда, форум, чтобы выяснить все плюсы и минусы, которые имеют MFC и Windows Forms.
P.S. «Лёгким программером». Ну спасибо за комплимент. Я всего-лишь решил сменить среду разработки на более гибкую и более оплачиваемую. Значит, по принципу «мы лёгких путей не ищем», все дружно переходим на asm и показываем всем, какие мы крутые. Среда для того и создаётся, чтобы делать часть рутинной работы и облегчать жизнь программиста.
Kefir
Дата 16.7.2006, 23:58 (ссылка) | (нет голосов) Загрузка .
«Hakuna Matata»
Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi
Репутация: нет Всего: 87
Kirill123, учф. по-моему тут даже думать не надо. Сила(WindowsForms) == 100 * Сила(MFC)
Цитата(Kirill123 @ 16.7.2006, 15:44 )
что Windows Forms более гибкая и что MFC уже умерло
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)