Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

MFC WinApi для создания интерфейса - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удалите из массива первую строку с максимальным элементом http://www.cyberforum.ru/cpp-beginners/thread1225689.html
удалите из массива A(n,m) первую строку с максимальным элементом(считается,что в массиве несколько максимальных элементов).
C++ Функция, которая возвращает разность двух целых чисел написать функцию, которая возвращает разность двух целых чисел, полученных в качестве аргумента. в Visual Studio 2010 Express не понимаю вообще С++.... http://www.cyberforum.ru/cpp-beginners/thread1225687.html
Создать функцию, формирующую массив из двух массивов - параметров C++
Функция, формирующая массив, каждый элемент которого равен минимальному из соответствующих значений двух других массивов – параметров. #include <iostream>; using namespace std; void...
C++ Неправильно записывается бинарник
#include <iostream> #include <string> #include <iomanip> #include <fstream> #include <stdlib.h> using namespace std; class Good { public:
C++ Написать класс «множество» – наследник класса «массив» http://www.cyberforum.ru/cpp-beginners/thread1225655.html
Ребята может есть что-то прошу помощи. Написать класс «множество» – наследник класса «массив» (множество понимается в привычном смысле – неупорядоченный набор уникальных элементов ...
C++ Вычисление бесконечных сумм составить программу вычисления суммы n членов ряда согласно условию задачи:cos(2x)/3+cos(4x)/15+cos(6x)/35+... подробнее

Показать сообщение отдельно
Убежденный
Системный программист
Эксперт С++
15547 / 7055 / 1114
Регистрация: 02.05.2013
Сообщений: 11,467
Завершенные тесты: 1
11.07.2014, 08:08
По поводу MFC мне бы хотелось процитировать высказывание одного человека, с мнением
которого я почти полностью согласен.

SV.
Как много людей берется обскакать MFC, не понимая, в чем ее фишка. Да, как библиотека
контролов MFC — тоненькая обертка над Win API и не поддерживает ничего сверх того.
Языков разметки, утилизации трехмерного ускорителя и так далее. Как у инструмента
создания SDI- и MDI-приложений, у этой библиотеки нет конкуретнов, а если есть — я
хочу их знать! Просто очень много людей создает bells and whistles software, и очень мало —
software для созидания. Последнее, разумеется, почти (?) полностью состоит из SDI- и
MDI-приложений.

Разумеется, классы Doc/View не бог весть какая трудоемая задача, и их можно прикрутить
хоть к Qt, хоть к HTMLayout, но это надо делать (и потому нет стандарта де-факто и де-юре).
Между тем, к MFC существуют расширители. Наборы классов для создания визиоподобных
приложений, например. Сейчас все это подыхает, как и созидательный софт вообще, а
когда-то так цвело пышным цветом. Стингрей, Дундас и кто там еще. Не говоря про
внутренние библиотеки-деривативы, которые были вполне interchangeable. Можно было с
одного грамотно написанного проекта взять представление документа и встроить в любой
другой грамотно написанный проект за пару дней. Грамотно написанных проектов только
почти не было. Какой-нибудь неграмотный мудак с полным непониманием ООП и MVC
обычно брал View и втыкал в нее все данные, операции, сериализацию и т.д.

Кроме того, поддержка DI со стороны IDE тоже значила многое.

Классы контролов, OLE и прочего функционала добавлялись, чтоб программистам "креативного"
софта по два раза не вставать. Сейчас этот аспект MFC улучшен сторонними производителями:
BCG, CodeJock и сотнями энтузиастов с CodeProject'а, но не настолько, чтобы конкурировать с
Qt/HTMLayout и компанией. Последнее и устаревший язык библиотеки, конечно, губят ее и
почти уже погубили.

...

Я очень сильно извиняюсь, но это и есть bells and whistles. Свистелки-перделки. Например,
сетевая активность в виде графика. Обоснование для таких графиков может быть одно —
реальное время слежения. Но для реального времени нужен простейший график, который
программируется за час. Все графические навороты вокруг рисования графика (зуминги,
риски на осях, сопоставления нескольких графиков, наложение фонов) в реальном времени
не нужны — вы просто не успеете с ними управляться. Соответственно, все, что нужно для
работы с графиками со стороны сетевого экрана для НАСТОЯЩЕЙ аналитики — сохранение
логов в CSV/XML, откуда можно их загрузить в любой аналитический софт. Соответственно,
вы пишете или сетевой экран с экспортом, простейшей менюшкой с командами типа "Открыть
папку с логами" и простейшим графиком реального времени, или аналитический софт с
загрузкой/сохранением, но тогда вам НЕ НУЖНЫ контролы (aka компоненты), а нужно, в
первую очередь, поддержать документ с данными и его многочисленные представления:
табличное, графическое и пр.

Такой подход с нынешним юзером не работает. Он, ленивая скотина, хочет чувствовать себя
защищенным, но ни хрена не хочет анализировать и вообще работать с данными, хочет
чувствовать ситуацию под контролем, но не пытаясь разобраться в "контролируемом" предмете.
Для таких и нужны навороченные графики реального времени и вообще GUI к задачам,
которые традиционно были демонами.

Мой поинт в том, что вы рассматриваете исключительно свистелки и сравниваете библиотеки
для их создания, включая в список MFC, которая, вообще-то, предназначалась не для этого, а
для создания полезного софта, которому действительно нужен GUI. В дивном новом мире
айфонов она, бедолага, конечно, оказывается неконкурентоспособной.

Еще раз: возьмите десктопное приложение под большую винду (это ваше изначальное
ограничение), ценность GUI для которого неоспорима. То есть, не сетевой экран со свистом.
Что это будет? В доброй половине случаев — приложение с документом в центре. То есть,
приложение, для которого контролы/компоненты оказываются на сугубо вспомогательных
ролях, как и библиотеки, построенные вокруг компонентно-контрольных форм.
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru