Как написать графический интерфейс на c
Перейти к содержимому

Как написать графический интерфейс на c

  • автор:

Как написать графический интерфейс на c

Доброго времени суток! В этом уроке мы создадим Ваше первое приложение с графическим интерфейсом в MS Visual Studio. Это будет своего рода «Hello World» для графических приложений. Скажу сразу, что использование Windows Forms — не единственный способ создания графических приложений (приложения с графическим интерфейсом пользователя) для C# программистов, но начать изучение лучше именно с этого. И так, запускаем Visual Studio.

Запустили? Тогда к делу! Идем в главное меню и выбираем пункт «Файл — Создать — Проект», как показано на рисунке ниже.

Создание нового проекта

Создание нового проекта

В появившемся окне:

  • в левой части выбираем «Шаблоны — Visual C# — Windows»;
  • в основной области выбираем элемент «Приложение Windows Forms»;
  • в нижней части окна вводим имя проекта и указываем его расположение на диске.

В общем, как показано на рисунке ниже.

Опции создания проекта

Опции создания проекта

Указали что нужно? Тогда нажимайте на кнопку «OK». Теперь вы должны увидеть примерно следующее (основные области выделены прямоугольниками):

Только что созданный проект

Только что созданный проект

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

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

Для этого, выделим в дизайнере форму (для этого, можно просто кликнуть левой кнопкой мыши по форме) и перейдем в блок свойств, в котором найдем строку «Text» (слово текст, ищем в левом столбце), как показано на рисунке ниже.

Свойство

Свойство «Text» основной формы приложения

Обратите внимание, в левом столбце указано имя (название свойства), а в правом — его значение.

В данном случае, мы имеем дело с текстовым свойством, и его значение, отображается в заголовке окна, так что, давайте теперь укажем там что-то свое, например, что-то вроде: «Главное окно», как показано на рисунке ниже:

Установка свойства формы

Установка свойства формы

Теперь, можно собрать проект и запустить. Для этого идем в главное меню и выбираем пункт «Сборка — Собрать решение». А потом запускаем приложение, для этого выбираем пункт «Отладка — Запуск без отладки» в главном меню. В результате Вы должны увидеть окно следующее окно.

Окно первого графического приложения

Окно первого графического приложения

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

Программы на Си с графическим интерфейсом

Author24 — интернет-сервис помощи студентам

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

Здесь вы можете заказать любую студенческую или школьную работу.

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Программы с графическим интерфейсом на C++
Здравствуйте. Я учусь на 2-ом курсе универа и ООП нам преподают на примере С++ , среда разработки.

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

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

Программы с графическим интерфейсом в среде wxDev
Помогите пожалуйста решить задачу(или подкинте какой-нить литературы по теме), особенно по.

Пошаговое руководство. Создание традиционного классического приложения Windows (C++)

В этом пошаговом руководстве показано, как создать традиционное классическое приложение Windows в Visual Studio. Приложение, которое вы создаете, использует API Windows для отображения «Hello, Windows desktop!» в окне. Код, который вы разрабатываете в этом пошаговом руководстве, можно использовать в качестве шаблона для создания классических приложений Windows.

API Windows (также известный как API Win32, КЛАССИЧЕСКИЙ API Windows и Классический API Windows) — это платформа на основе языка C для создания приложений Windows. Он использовался для создания приложений Windows на протяжении десятилетий. Более сложные и простые платформы программ были созданы на основе API Windows. Например, MFC, ATL, платформы .NET. Даже самый современный код среда выполнения Windows для приложений UWP и Store, написанных в C++/WinRT, использует API Windows в нижней части. Дополнительные сведения об API Windows см. в разделе «Индекс API Windows».

В разделе «Сборка кода » в конце этого документа показан полный код. В этом пошаговом руководстве рассматриваются различные фрагменты кода, которые входят в приложение Windows, но вы не будете кодировать по мере использования, так как некоторые сведения опущены в фрагментах кода, чтобы сосредоточиться на наиболее важных частях. Вы можете скопировать полный код и вставить его в проект в конце.

Необходимые компоненты

Screenshot of the Desktop development with C++ workload in the Visual Studio Installer which says: build classic Windows-based apps using the power of the Visual C++ toolset

  • Компьютер под управлением Microsoft Windows 7 или более поздних версий. Мы рекомендуем Windows 11 или более поздней версии для оптимальной разработки.
  • копия Visual Studio. Сведения о скачивании и установке Visual Studio см. в этой статье. Когда вы запускаете установщик, убедитесь, что установлена рабочая нагрузка Разработка классических приложений на C++. Не беспокойтесь, если вы не установили эту рабочую нагрузку при установке Visual Studio. Вы можете снова запустить установщик и установить ее сейчас.
  • Базовое понимание использования интегрированной среды разработки Visual Studio. Если вы уже использовали классические приложения для Windows, вы, вероятно, справитесь. Общие сведения см. в обзоре возможностей интегрированной среды разработки Visual Studio.
  • Основные навыки владения языком C++. Не волнуйтесь, мы не будем делать ничего сложного.

Создание классического проекта Windows

Выполните следующие действия, чтобы создать первый классический проект Windows. Запишите в начале этого пошагового руководства полный код доступен в разделе «Сборка кода» в конце пошагового руководства. Следуйте инструкциям по созданию проекта, но удерживайте вставку следующих разделов кода до конца, когда будет представлен полный код приложения. Некоторые сведения опущены в фрагментах кода, чтобы сосредоточиться на наиболее важных частях. Вы можете скопировать полный код и вставить его в проект в конце.

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

Создание классического проекта Windows в Visual Studio

  1. В главном меню выберите Файл >Создать >Проект, чтобы открыть диалоговое окно Создание проекта.
  2. В верхней части диалогового окна задайте для языка C ++, установите для платформы значение «Платформа» в Windows и задайте для типа Project значениеDesktop.
  3. Из отфильтрованного списка типов проектов выберите мастер рабочего стола Windows и нажмите кнопку «Далее«. На следующей странице введите имя проекта, например DesktopApp.
  4. Нажмите кнопку Создать, чтобы создать проект.
  5. Откроется диалоговое окно «Проект рабочего стола Windows». В раскрывающемся списке «Тип приложения» выберите классическое приложение (.exe). Так как мы делаем приложение Windows, выбор консольного приложения приводит к созданию проекта, который не будет строиться с учетом кода, который мы будем использовать. Затем в разделе «Дополнительные параметры» выберите «Пустой проект«. Нажмите кнопку ОК, чтобы создать проект.
  6. В Обозреватель решений щелкните правой кнопкой мыши проект DesktopApp, выберите «Добавить» и выберите «Создать элемент«.

Анимация показывает правой кнопкой мыши имя проекта в Обозреватель решений, выбрав «Добавить» в появившемся меню и выбрав «Создать элемент».

Screenshot of the Add New Item dialog box in Visual Studio 2019. The C plus plus File (.cpp) option is selected. The name field is set to Hello Windows Desktop.cpp.

  • В диалоговом окне Добавление нового элемента выберите Файл C++ (.cpp). В поле «Имя» введите имя файла, например HelloWindowsDesktop.cpp. Нажмите кнопку Добавить.
  • Теперь проект создается, и исходный файл открывается в редакторе.

    Создание классического проекта Windows в Visual Studio 2017

    Screenshot of the New Project dialog box in Visual Studio 2017. The item Windows Desktop Wizard is selected. The name textbox says DesktopApp.

    1. В меню Файл выберите команду Создать, а затем пункт Проект.
    2. В диалоговом окне «Создать проект» в левой области разверните узел «Установленный>Visual C++«, а затем выберите «Рабочий стол Windows». В средней области выберите мастер рабочего стола Windows. В поле «Имя» введите имя проекта, например DesktopApp. Выберите OK.
    3. В диалоговом окне «Классический проект Windows» в разделе «Тип приложения» выберите приложение Windows (.exe). В поле Дополнительные параметрывыберите Пустой проект. Убедитесь, что предварительно скомпилированные заголовки не выбраны. Нажмите кнопку ОК, чтобы создать проект.
    4. В Обозреватель решений щелкните правой кнопкой мыши проект DesktopApp, выберите «Добавить» и выберите «Создать элемент«.

    Анимация показывает правой кнопкой мыши имя проекта в Обозреватель решений, выбрав «Добавить» в появившемся меню, а затем выберите новый элемент.

    Screenshot of the Add New Item dialog box in Visual Studio 2017. Installed ></p>
</li>
<li>В диалоговом окне <strong>Добавление нового элемента</strong> выберите <strong>Файл C++ (.cpp)</strong>. <strong>В поле «Имя»</strong> введите имя файла, например <em>HelloWindowsDesktop.cpp</em>. Нажмите кнопку <strong>Добавить</strong>. Visual C plus plus is selected on the left and the C plus plus File option is highlighted.» /></li>
</ol>
<p>Теперь проект создается, и исходный файл открывается в редакторе.</p>
<h4>Создание классического проекта Windows в Visual Studio 2015</h4>
<ol>
<li>В меню <strong>Файл</strong> выберите команду <strong>Создать</strong>, а затем пункт <strong>Проект</strong>.</li>
<li><strong>В диалоговом окне «Создать проект</strong>» в левой области разверните узел <strong>«Установленные</strong>><strong>шаблоны >Visual C++</strong>«, а затем выберите <strong>Win32.</strong> В средней области выберите шаблон <strong>Проект Win32</strong>. <strong>В поле «Имя»</strong> введите имя проекта, например <em>DesktopApp</em>. Выберите <strong>OK</strong>. <img decoding=

  • На странице «Приложение Параметры» в разделе «Тип приложения« выберите приложение Windows. В разделе «Дополнительные параметры» не проверка заголовок предварительной компиляции, а затем выберите «Пустой проект«. Чтобы создать проект, нажмите кнопку Готово.
  • В Обозреватель решений щелкните правой кнопкой мыши проект DesktopApp, выберите «Добавить» и выберите «Создать элемент«.
  • Анимация показывает правой кнопкой мыши имя проекта в Обозреватель решений, выбрав «Добавить» в появившемся меню и выбрав «Создать элемент».

    Screenshot of the Add New Item dialog box in Visual Studio 2015 with Installed ></p>
</li>
<li>В диалоговом окне <strong>Добавление нового элемента</strong> выберите <strong>Файл C++ (.cpp)</strong>. <strong>В поле «Имя»</strong> введите имя файла, например <em>HelloWindowsDesktop.cpp</em>. Нажмите кнопку <strong>Добавить</strong>. Visual C plus plus selected and the C plus plus File option highlighted.» /></li>
</ol>
<p>Теперь проект создается, и исходный файл открывается в редакторе.</p>
<h3>Код</h3>
<p>Далее вы узнаете, как создать код для классического приложения Windows в Visual Studio.</p>
<h4>Где код запускается в классическом приложении Windows</h4>
<ol>
<li>Так же, как каждое приложение C и приложение C++ должны иметь main функцию в качестве отправной точки, каждое классическое приложение Windows должно иметь WinMain функцию. WinMain имеет следующий синтаксис:</li>
</ol>
<pre><code >int WINAPI WinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nCmdShow );</code> </pre>
<p>Сведения о параметрах и возвращаемых значениях этой функции см. в статье «Точка входа WinMain».</p>
<p>Примечание. Что такое все эти дополнительные слова, например WINAPI , или , или CALLBACK , или HINSTANCE _In_ ? Традиционный API Windows использует макросы typedefs и препроцессоров для абстрагирования некоторых сведений о типах и коде для конкретной платформы, таких как соглашения о вызовах, <strong>__declspec</strong> объявлениях и pragmas компилятора. В Visual Studio вы можете использовать функцию быстрого сведений IntelliSense, чтобы узнать, что определяют эти типдефы и макросы. Наведите указатель мыши на слово, интересующее вас, или выберите его и нажмите <strong>клавиши CTRL K, <strong>CTRL</strong>+<strong>+ I</strong></strong> для небольшого всплывающего окна, содержащего определение. Дополнительные сведения см. в разделе Using IntelliSense. Параметры и типы возвращаемых значений часто используют <em>заметки</em> SAL для перехвата ошибок программирования. Дополнительные сведения см. в статье «Использование заметок SAL для уменьшения дефектов кода C/C++».</p>
<pre>#include #include</pre>
<pre><code >LRESULT CALLBACK WndProc( _In_ HWND hWnd, _In_ UINT message, _In_ WPARAM wParam, _In_ LPARAM lParam );</code> </pre>
<h4>Добавление функций в функцию WinMain</h4>
<ol>
<li>WinMain В функции необходимо записать некоторые основные сведения о главном окне. Это можно сделать, заполнив структуру типа WNDCLASSEX . Структура содержит сведения о окне, таком как значок приложения, цвет фона окна, имя, отображаемое в строке заголовка, помимо прочего. Важно отметить, что он содержит указатель функции на процедуру окна, которая обрабатывает сообщения, которые Windows отправляет в приложение. В следующем примере показана типичная WNDCLASSEX структура:</li>
</ol>
<pre><code >WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(wcex.hInstance, IDI_APPLICATION); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = NULL; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, IDI_APPLICATION);</code> </pre>
<pre>if (!RegisterClassEx(&wcex))</pre>
<pre>static TCHAR szWindowClass[] = _T(

    // The parameters to ShowWindow explained: // hWnd: the value returned from CreateWindow // nCmdShow: the fourth parameter from WinMain ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); 
    MSG msg; while (GetMessage(&msg, NULL, 0, 0)) < TranslateMessage(&msg); DispatchMessage(&msg); >return (int) msg.wParam; 

    Дополнительные сведения о структурах и функциях в цикле сообщений см. в разделе MSG , GetMessage TranslateMessage и DispatchMessage . Базовая WinMain функция, которая создает главное окно приложения и прослушивает сообщения, которые Windows отправляет приложение, будут выглядеть следующим образом:

    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) < WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(wcex.hInstance, IDI_APPLICATION); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = NULL; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, IDI_APPLICATION); if (!RegisterClassEx(&wcex)) < MessageBox(NULL, _T("Call to RegisterClassEx failed!"), _T("Windows Desktop Guided Tour"), NULL); return 1; >// Store instance handle in our global variable hInst = hInstance; // The parameters to CreateWindowEx explained: // WS_EX_OVERLAPPEDWINDOW : An optional extended window style. // szWindowClass: the name of the application // szTitle: the text that appears in the title bar // WS_OVERLAPPEDWINDOW: the type of window to create // CW_USEDEFAULT, CW_USEDEFAULT: initial position (x, y) // 500, 100: initial size (width, length) // NULL: the parent of this window // NULL: this application dows not have a menu bar // hInstance: the first parameter from WinMain // NULL: not used in this application HWND hWnd = CreateWindowEx( WS_EX_OVERLAPPEDWINDOW, szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 100, NULL, NULL, hInstance, NULL ); if (!hWnd) < MessageBox(NULL, _T("Call to CreateWindow failed!"), _T("Windows Desktop Guided Tour"), NULL); return 1; >// The parameters to ShowWindow explained: // hWnd: the value returned from CreateWindow // nCmdShow: the fourth parameter from WinMain ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); // Main message loop: MSG msg; while (GetMessage(&msg, NULL, 0, 0)) < TranslateMessage(&msg); DispatchMessage(&msg); >return (int) msg.wParam; > 

    Обработка сообщений в WndProc функции

    1. Для обработки сообщений, получаемых приложением, вы реализуете инструкцию switch в WndProc функции. Важное сообщение для обработки . WM_PAINT Приложение получает WM_PAINT сообщение, когда необходимо обновить часть отображаемого окна. Событие может возникать, когда пользователь перемещает окно перед окном и снова перемещает его. Оно получает это сообщение при первом отображении окна, что дает возможность отображать пользовательский интерфейс приложения. Приложение узнает об этих событиях, когда Windows отправляет их. При первом отображении окна все его необходимо обновить. Чтобы обработать сообщение, сначала вызовите, а затем обработайте WM_PAINT BeginPaint всю логику для размещения текста, кнопок и других элементов управления в окне. Затем вызовите EndPaint . Для этого приложения код между BeginPaint() и отображается Hello, Windows desktop! в окне, созданном в WinMain() EndPaint() . В следующем коде TextOut функция отображает текст в указанном расположении в окне.
    PAINTSTRUCT ps; HDC hdc; TCHAR greeting[] = _T("Hello, Windows desktop!"); switch (message) < case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // Here your application is laid out. // For this introduction, we just print out "Hello, Windows desktop!" // in the top left corner. TextOut(hdc, 5, 5, greeting, _tcslen(greeting)); // End application-specific layout section. EndPaint(hWnd, &ps); break; >
    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) < PAINTSTRUCT ps; HDC hdc; TCHAR greeting[] = _T("Hello, Windows desktop!"); switch (message) < case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // Here your application is laid out. // For this introduction, we just print out "Hello, Windows desktop!" // in the top left corner. TextOut(hdc, 5, 5, greeting, _tcslen(greeting)); // End application specific layout section. EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); break; >return 0; > 

    Сборка кода

    Как обещало, полный код рабочего приложения следует.

    Сборка примера

    1. Удалите весь код в HelloWindowsDesktop.cpp в редакторе. Скопируйте этот пример кода и вставьте его в HelloWindowsDesktop.cpp:
    // HelloWindowsDesktop.cpp // compile with: /D_UNICODE /DUNICODE /DWIN32 /D_WINDOWS /c #include #include #include #include // Global variables // The main window class name. static TCHAR szWindowClass[] = _T("DesktopApp"); // The string that appears in the application's title bar. static TCHAR szTitle[] = _T("Windows Desktop Guided Tour Application"); // Stored instance handle for use in Win32 API calls such as FindResource HINSTANCE hInst; // Forward declarations of functions included in this code module: LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain( _In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nCmdShow ) < WNDCLASSEX wcex; wcex.cbSize = sizeof(WNDCLASSEX); wcex.style = CS_HREDRAW | CS_VREDRAW; wcex.lpfnWndProc = WndProc; wcex.cbClsExtra = 0; wcex.cbWndExtra = 0; wcex.hInstance = hInstance; wcex.hIcon = LoadIcon(wcex.hInstance, IDI_APPLICATION); wcex.hCursor = LoadCursor(NULL, IDC_ARROW); wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wcex.lpszMenuName = NULL; wcex.lpszClassName = szWindowClass; wcex.hIconSm = LoadIcon(wcex.hInstance, IDI_APPLICATION); if (!RegisterClassEx(&wcex)) < MessageBox(NULL, _T("Call to RegisterClassEx failed!"), _T("Windows Desktop Guided Tour"), NULL); return 1; >// Store instance handle in our global variable hInst = hInstance; // The parameters to CreateWindowEx explained: // WS_EX_OVERLAPPEDWINDOW : An optional extended window style. // szWindowClass: the name of the application // szTitle: the text that appears in the title bar // WS_OVERLAPPEDWINDOW: the type of window to create // CW_USEDEFAULT, CW_USEDEFAULT: initial position (x, y) // 500, 100: initial size (width, length) // NULL: the parent of this window // NULL: this application does not have a menu bar // hInstance: the first parameter from WinMain // NULL: not used in this application HWND hWnd = CreateWindowEx( WS_EX_OVERLAPPEDWINDOW, szWindowClass, szTitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 500, 100, NULL, NULL, hInstance, NULL ); if (!hWnd) < MessageBox(NULL, _T("Call to CreateWindow failed!"), _T("Windows Desktop Guided Tour"), NULL); return 1; >// The parameters to ShowWindow explained: // hWnd: the value returned from CreateWindow // nCmdShow: the fourth parameter from WinMain ShowWindow(hWnd, nCmdShow); UpdateWindow(hWnd); // Main message loop: MSG msg; while (GetMessage(&msg, NULL, 0, 0)) < TranslateMessage(&msg); DispatchMessage(&msg); >return (int) msg.wParam; > // FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM) // // PURPOSE: Processes messages for the main window. // // WM_PAINT - Paint the main window // WM_DESTROY - post a quit message and return LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) < PAINTSTRUCT ps; HDC hdc; TCHAR greeting[] = _T("Hello, Windows desktop!"); switch (message) < case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // Here your application is laid out. // For this introduction, we just print out "Hello, Windows desktop!" // in the top left corner. TextOut(hdc, 5, 5, greeting, _tcslen(greeting)); // End application-specific layout section. EndPaint(hWnd, &ps); break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, message, wParam, lParam); break; >return 0; > 

    Анимация показывает нажатие кнопки «Сохранить все», а затем выберите «Сборка > Сборка решения» в главном меню.

    Screenshot of the running project. It shows a window with the title Windows Desktop Guided Tour Application. The contents of the window are Hello, Windows desktop!.

  • Чтобы запустить приложение, нажмите клавишу F5. Должно появиться окно с текстом «Hello, Windows desktop!».
  • Поздравляем! Вы создали традиционное классическое приложение Windows.

    C/C++ — создание графического интерфейса

    Так вот, немного пошарил в нете, понял что есть такие штуки, как WinForms и WPF. Еще так же есть вариант winAPI. И вот тут у меня ступор — где, что и как? Помогите разобраться, какие технологии применяются для создания интерфейсов с пом.С++ в MSVS; что лучше использовать на сегодняшний день? А так же посоветуйте нормальную литературу на этот счет.

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

    И все же повторюсь в своем вопросе: что нужно знать и что нужно изучать, что бы начать писать GUI на С++ с пом. Visual Studio?

    Отслеживать
    20.2k 6 6 золотых знаков 37 37 серебряных знаков 81 81 бронзовый знак
    задан 28 апр 2014 в 12:27
    521 3 3 золотых знака 9 9 серебряных знаков 29 29 бронзовых знаков

    На сегодняшний день лучше вообще не писать графические интерфейсы на C/C++. А для обучения при первой же возможности надо уходить с винды. Если требуют курсач с MSVS, но можете сменить тему курсача на что-нибудь неграфическое — меняйте.

    28 апр 2014 в 12:35

    WPF — это вообще не про С++. Winforms в общем-то тоже, хотя завести его на С++ можно. Правда, если мне не изменяет память, это будет С++/CLI, что далеко не то же самое, что и собственно С++

    28 апр 2014 в 12:35

    Согласен, и честно — я бы только «за», к примеру писать на том же python! Но задача, к сожалению, поставлена так, что нужно(!) писать все на С++ (т.к. изучается конкретно этот язык), с использованием инструмента MSVS(вопрос — а Visual studio — это инструмент?). Вот поэтому и встал такой вопрос — что нужно знать для написания GUI с пом.С++ и майкрософтовского продукта.

    28 апр 2014 в 12:38

    Окей. А для чего WPF? Просто, на сколько я понял, что его можно использовать и для C++. Хотя с гугле почти 100% от общего кол-ва запросов выдает WPF в связке с C#! Ага, на сколько я понял: WinForms == C++/CLI? То есть мне нужно изучить C++/CLI, что бы уметь писать GUI?

    28 апр 2014 в 12:40

    Есть еще MFC, старый как то, что бывает старым, и лучше бы вам его не откапывать. И WTL, который на слуху и, кажется, я слышал о нем неплохие отзывы.

    28 апр 2014 в 12:40

    2 ответа 2

    Сортировка: Сброс на вариант по умолчанию

    Самое, что вам ближе — это MFC. WinForms — это не С++, это C++/CLI, который работает на платформе MS .Net Framework.

    Беда MFC в том, что это тонкая прослойка над WinAPI там шаг влево-шаг вправо от идеологии фреймворка — пропасть.

    Писать годные интерфейсы можно и нужно. Но, к счастью или несчастью, Qt здесь почти безальтернативен. Пусть он превносит в язык расширения в виде сигналов-слотов, как следствие — предобработки исходного кода MOC’ом, но это действительно юзабельный бриллиант в мире C++.

    В академических целях, желательно овладевать чистым C++, в разумных пределах — WinAPI. Реальные более-менее сложные, переносимые интерфейсы можно писать wxWidget, GTKmm и иже с ними, just for fun.

    Но Qt — это настоящее и будущее C++)

    ЗЫ Плагин Qt позволяет писать из-под MSVS. Однако, студия враждебна к юникоду.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *