Подтвердить что ты не робот

Как создать графический интерфейс для приложения Windows с помощью С++?

Я решаю, как разработать графический интерфейс для небольшого проекта С++/win32 api (работает Visual Studio С++ 2008). Для проекта потребуется всего несколько компонентов, чтобы начать основной процесс, поэтому он будет очень легким (всего одна кнопка и текстовое поле в значительной степени...). Мой вопрос таков:

У меня нет опыта разработки GUI на окнах, но я могу легко учиться. Итак, что я должен использовать? Визуальный редактор (генерация кода перетаскивания g: мое предпочтение для разработки графического пользовательского интерфейса на практике (java/swing)). Или я должен использовать специальную библиотеку? В любом случае, какую библиотеку или визуальный редактор я должен использовать? Я слышал, как кто-то упоминал о написании GUI в С#, а затем называет код С++... Дело в том, что это такой простой графический интерфейс, мне было бы проще просто сохранить все это на С++, но я открыт для любых лучшее предложение.

4b9b3361

Ответ 1

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

MFC датирован и имеет свою долю раздражения, но он, безусловно, сделает эту работу для вас, если вы просто говорите о кнопке и текстовом поле.

У меня нет опыта с Qt, поэтому я не могу сравнивать эти два.

Ответ 2

на сегодняшний день лучшая библиотека С++ GUI существует Qt, она является всеобъемлющей, простой в освоении, очень быстрой и многогранной.

ah, он недавно получил лицензию LGPL, так что теперь вы можете скачать ее бесплатно и включить в коммерческие программы

Ответ 3

Я предпочитаю просто использовать Microsoft Visual Studio и писать собственное приложение Win32.

Для графического интерфейса, такого простого, как тот, который вы описываете, вы можете просто создать диалоговое окно и использовать его в качестве основного окна приложения, Приложение по умолчанию, созданное мастером Win32 Project в Visual Studio, фактически выдает окно, поэтому вы можете заменить это окно с помощью диалогового окна и заменить WndProc с аналогичным (но более простым) DialogProc.

Таким образом, вопрос является одним из инструментов и стоимости. Express Edition Visual С++ делает все, что вам нужно, за исключением того, что на самом деле создает ресурс шаблона диалога. Для этого вы можете либо скопировать его в файл в памяти вручную. Связанный вопрос SO: Диалоги Windows API без использования файлов ресурсов.

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

Наконец, Visual Studio 2008 Standard Edition является более дорогостоящим вариантом, но дает вам встроенный редактор ресурсов.

Ответ 4

Просто создайте новое приложение MFC С++. Он построен, довольно легко, и в мире существует множество примеров...

Кроме того, вы можете создать свое диалоговое окно прямо в Visual Studio, указать им имена переменных и создать 90% кода.

Ответ 5

Я настоятельно рекомендую использовать простой Win32, потому что довольно сложно заставить его работать нормально во всех ситуациях, это довольно скучная и утомительная работа, а библиотека Common Controls не является полной. Кроме того, большая часть работы была выполнена для вас.

Каждый раз, когда я заканчиваю работу с обычным Win32, я должен потратить, по крайней мере, пару часов на самые тривиальные задачи, потому что мне нужно найти все параметры, флаги, функции, макросы и выяснить, как правильно их подключить, Я обычно предпочитаю простой метод drag-and-drop-do-make-me-use-my-brain и просто захлопываю вещи за 2 минуты.

В качестве легкого инструментария я предлагаю omgui, который имеет чистый и красивый API. Однако он не поставляется с любыми инструментами.

Если вам нужна поддержка инструмента, вы, вероятно, в конечном итоге захотите пойти либо в MFC (редактор ресурсов, встроенный в Visual Studio), либо в Qt. Я не знаю, есть ли у wxWidgets какие-либо инструменты, но я полагаю, что он имеет.

Изменить: Дэвид Цитрон упоминает, что, по-видимому, редактор ресурсов в Visual Studio генерирует файлы ресурсов, совместимые с Win32, так что, вероятно, предпочтительный способ сделать что-то, если вы хотите, чтобы все было просто.

Ответ 6

Избегайте QT (для noobs) или любых бесполезных библиотек (абсурдно для такой базовой вещи)

Просто используйте мастер VS Win32 api, нажмите кнопку и текстовое поле... и все!

Через 25 секунд!

Ответ 7

Qt от Nokia - определенно способ пойти. Другим вариантом является gtk, но Qt лучше поддерживается и документируется. В любом случае, они оба свободны. И оба они широко используются и хорошо известны, поэтому легко найти ответы на ваши вопросы.

Ответ 8

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

Ознакомьтесь с классическим "Программированием Windows" Чарльзом Петцольдом или некоторым онлайн-учебником (например, http://www.winprog.org/tutorial/), и вы готовы к работе.

Ответ 9

Если вы хотите узнать о win32, WTL http://wtl.sourceforge.net/ является довольно легким эквивалентом MFC, но вам нужно любить шаблон для используйте его.

Если вы хотите, чтобы какой-то простой MFC уже был интегрирован с VS, также он уже имеет большую базу дополнительного кода и обходные пути ошибок в сети.

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

У вас также есть Gtk, wxWindow, и у вас не будет проблем, если вы уже использовали его в linux.

Ответ 10

Простым "окном" с некоторым текстом и кнопкой является просто MessageBox. Вы можете создать их с помощью одного вызова функции; вам не нужна какая-либо библиотека.

Ответ 11

Я использовал wxWidgets для небольшого проекта, и мне это понравилось. Qt - еще один хороший выбор, но для коммерческого использования вам, вероятно, потребуется купить лицензию. Если вы пишете на С++, не используйте Win32 API, так как вы в конечном итоге сделаете его объектно-ориентированным. Это нелегко и требует много времени. Кроме того, Win32 API имеет слишком много макросов и чувствует себя более сложным для того, что он предлагает.