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

Как я могу программировать GUI в C?

Я хочу сделать графическое программирование на C. Я много искал в компиляторе, который предоставляет богатый набор функций для программирования GUI на C, но я ничего не мог найти.

В принципе, я хочу нарисовать кнопки, а затем принять выбор от пользователя и предпринять соответствующие действия. Было бы полезно, если вы можете предложить компилятор C или библиотеку, которую я могу добавить в свой компилятор. Я работаю над операционной системой Windows.

В настоящее время я использую компилятор TURBO C, который не поддерживает прямые методы создания кнопок. Любая помощь будет оценена.

4b9b3361

Ответ 1

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

Конечно, как говорится, первым делом стоит отказаться от Turbo C. Этому компилятору около 20 лет, и его использование не приносит вам никакой пользы. Вы не можете писать современные приложения с графическим интерфейсом, поскольку они будут генерировать только 16-битный код. Все современные операционные системы 32-битные, а многие сейчас 64-битные. Стоит также отметить, что 64-разрядные версии Windows не будут работать с 16-разрядными приложениями. Вам понадобится эмулятор для этого; на самом деле это не вызовет особых ощущений, если вы можете писать только приложения, работающие в эмуляторе DOS. :-)

Microsoft Visual Studio Express C++ доступен для бесплатной загрузки. Он включает в себя тот же компилятор, который доступен в полной версии пакета. Пакет C++ также компилирует чистый C-код.

А поскольку вы работаете в Windows, Windows API является естественным выбором. Это позволяет писать собственные приложения Windows, которые имеют доступ к полному набору элементов управления графическим интерфейсом. Здесь вы найдете хороший учебник по написанию приложений WinAPI на C. Если вы решите использовать Visual Studio, он также включает стандартный код для пустого приложения WinAPI, которое поможет вам быстро приступить к работе.

Если вы действительно заботитесь о том, чтобы научиться делать это, программирование Windows Чарльза Петцольда является каноническим ресурсом предмета, и его обязательно стоит прочитать. Весь API Windows был написан на C, и вполне возможно писать полнофункциональные приложения для Windows на C. Вам не нужно вонять C++.

Так я бы это сделал, по крайней мере. Как показывают другие ответы, GTK также является опцией. Но приложения, которые он генерирует, просто ужасно выглядят в Windows.


РЕДАКТИРОВАТЬ: О дорогой... Похоже, вы не одиноки в желании писать "GUI" приложения с использованием устаревшего компилятора. Поиск Google включает следующую библиотеку: TurboGUI: GUI Framework для Turbo C/C++:

TurboGUI interface sample

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

Ответ 2

Самая известная библиотека для создания некоторого GUI на языке C - это GTK.

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

Ответ 3

Используйте win API в своей основной функции:

Затем напишите другую функцию, которая обрабатывает выигрышные сообщения (упомянутые в # 1). Когда вы получаете сообщение WM_CREATE, вы должны вызвать CreateWindow(). Класс - это то, что управление является этим окном, например "редактировать" - это текстовое поле, а "button" - это кнопка..). Вы должны указать идентификатор для каждого элемента управления (по вашему выбору, но уникального среди всех). CreateWindow() возвращает дескриптор этого элемента управления, который необходимо запомнить. Когда пользователь нажимает на элемент управления, вы получаете сообщение WM_COMMAND с идентификатором этого элемента управления. Здесь вы можете обработать это событие. Вы можете найти полезные SetWindowText() и GetWindowText(), которые позволяет вам установить/получить текст любого элемента управления.
Вам понадобится только SDK win32. Вы можете получить здесь.

Ответ 4

C - это скорее аппаратный язык программирования, есть простые GUI-сборщики для C, GTK, Glade и т.д. Проблема заключается в том, что программа на C является легкой частью, что делает простой графический интерфейс, сложная часть состоит в том, чтобы объединить оба, чтобы взаимодействовать между вашей программой и графическим интерфейсом - это головная боль, а другой графический интерфейс использует разные способы, некоторые бросают глобальные переменные, некоторые используют слоты. Было бы неплохо создать GUI-конструктор, который бы легко связывал ваши программные переменные C и выходы. Программирование CLI легко, когда вы преодолеваете выделение памяти и указатели, GUI вы можете использовать среду IDE, которая использует перетаскивание. Но все вокруг, я думаю, это может быть проще.

Ответ 5

Сам компилятор C не предоставит вам функциональность графического интерфейса, но для этого есть множество библиотек. Наиболее популярным является, вероятно, GTK +, но может быть немного сложнее, если вы только начинаете и хотите быстро получить графический интерфейс и запустить.

Для чего-то более простого, я бы рекомендовал IUP. С его помощью вы можете использовать простой язык определения GUI под названием LED для управления компоновкой (но вы можете сделать это с помощью чистого C, если хотите).

Ответ 6

Windows API и Windows SDK, если вы хотите создать все самостоятельно (или) Windows API и Visual C Express. Получите выпуск 2008 года. Это полномасштабная IDE и замечательная часть программного обеспечения Microsoft для разработки Windows.

Все операционные системы написаны на C. Таким образом, любое приложение, консоль/графический интерфейс, который вы пишете на C, является стандартным способом написания для операционной системы.