Создание GUI с MFC

Ваша проблема очень хорошо задокументирована, и, если мне надоело искать пример, ваш вопрос должен быть закрыт как дубликат того, сколько раз он задавался и отвечал здесь. Вы не установили кодировку формы, поэтому по умолчанию используется кодировка URL.

Это должно быть enctype="multipart/form-data"

6
задан menjaraz 1 January 2012 в 14:34
поделиться

9 ответов

МФЦ - это боль, ИМО. Если вам не нужно программировать на c ++, я рекомендую использовать C # с WPF или WinForms. Это намного проще. И если вам нужно использовать c ++, есть лучшие графические решения, такие как Qt.

3
ответ дан 8 December 2019 в 04:55
поделиться

MFC прост, когда вы продолжаете вникать в границы того, что он должен делать (базовый Doc / View, диалоги, никакой модный конфетный интерфейс ...); как только вам нужно расширить базовое поведение, это становится все труднее и труднее.

5
ответ дан 8 December 2019 в 04:55
поделиться

Я должен согласиться, что для работы с MFC редактор ресурсов, который является частью Visual studio, вероятно, самый простой способ начать работу с MFC. Вы можете просто расположить элементы управления в диалоговом окне и растянуть их до соответствующих пропорций. Напомним, что MFC - это фреймворк, просто он поставляется как часть Windows.

Если вы хотите, чтобы размеры элементов управления были изменены, вам нужно добавить некоторый код для обработки изменения размера (ON_SIZE Я думаю, что это так) сообщения доставляются по мере изменения размера диалога. Это не так уж плохо, если вы не хотите изменять размер / перемещать слишком много вещей одновременно.

Лично я бы рекомендовал избегать MFC в пользу WxWidgets . Там'

5
ответ дан 8 December 2019 в 04:55
поделиться

Типичное приложение MFC имеет окно фрейма верхнего уровня и некоторое количество дочерних окон просмотра и панелей управления. Ничто из этого обычно не требует ручного позиционирования, хотя иногда необходимо указать начальный размер во время построения. Вы можете использовать редактор диалоговых окон Visual Studio для размещения диалоговых окон. Очень редко нужно вручную писать код позиционирования.

2
ответ дан 8 December 2019 в 04:55
поделиться

Какую версию Visual C ++ вы используете? Все версии, которые я использовал, поставляются с довольно хорошим графическим инструментом для размещения и редактирования компонентов графического интерфейса. Я обычно добавляю необходимые базовые компоненты, пишу некоторый код для них, чтобы посмотреть, как они выглядят, и затем перемещаю вещи, пробуя разные макеты, прежде чем я остановлюсь на одной и добавлю другие составляющие части.

Несмотря на то, что я писал приложения MFC и Я хочу согласиться с постером, который спросил, почему вы мешаете учиться. В наши дни вам, вероятно, лучше использовать свое время на изучении C # или Java.

2
ответ дан 8 December 2019 в 04:55
поделиться

Приложения MFC могут быть довольно раздутыми (например, большой размер исполняемого файла приложения, объем памяти и / или требующий выполнения DLL-библиотеки времени выполнения) используется вместе с вашим приложением). Если вы сосредоточены на C ++, я бы рекомендовал вместо этого взглянуть на WTL (раньше это была библиотека Microsoft, но теперь она на SourceForge). Это очень легкая альтернатива (с использованием шаблонов) MFC с похожим синтаксисом.

В последнее время я отказался от C ++ для Java для большинства своих приложений, включая GUI, и не планирую возвращаться.

2
ответ дан 8 December 2019 в 04:55
поделиться

Большую часть времени вы используете редактор ресурсов диалога и привязку данных для создания пользовательского интерфейса в MFC (вы можете иметь диалоговое представление). Если вы не создаете диалог, то обычно вы имеете в виду некоторый алгоритм для компоновки элементов управления и реализуете его.

1
ответ дан 8 December 2019 в 04:55
поделиться

Если вы хотите использовать функции макета диалога в приложении MFC выведите класс CView из CFormView . Это должно выглядеть очень похоже на графический интерфейс .NET WinForms, VB6 и т. Д., Основанный на «формах» ...

Это можно сделать с помощью мастера новых приложений в разделе «Сгенерированные классы». Раскрывающийся раздел Базового класса (я проверил это в VS 2008).

Вы также можете просто создать диалоговое приложение, с которым вы, похоже, уже знакомы.

Есть несколько других производных от CView классов, которые предоставляют другие способы разработки «представлений» вашего приложения. Использование CView по умолчанию в качестве базового класса (как мастера создают по умолчанию) предполагает, что вы будете вручную создавать «элементы управления» и / или рисовать экран. Рисование (на самом деле рисование дисплея с помощью GDI) - это то, что разработчики Win32 старой школы знакомы, но часто никогда не выполняются в более современных рамках.

2
ответ дан 8 December 2019 в 04:55
поделиться

Я использую MFC более 10 лет. Это неплохо, и я бы рекомендовал его по сравнению с другими фреймворками, отличными от Microsoft, если вы не заинтересованы в запуске своего приложения на других платформах. Если вы хотите, чтобы ваше приложение выглядело как диалог, используйте CFormView, как предлагает Aardvark, и разместите его с помощью редактора диалогов. Во многих моих программах MFC представления представляют собой CListViews или приложение, подобное проводнику, с деревом слева и ListView справа. Еще один, который мы часто используем, - это общий CView с вкладкой и страницами свойств. В них у вас нет проблем с макетом. Вы просто создаете элементы управления и размещаете их на некотором заранее определенном расстоянии от краев. Проза очень хороша. Вот что заставило меня пойти на MFC. Посетите CodeProject.com, чтобы узнать о некоторых классах, расширяющих MFC, например, Брайан

3
ответ дан 8 December 2019 в 04:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: