Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.59/68: Рейтинг темы: голосов - 68, средняя оценка - 4.59
0 / 0 / 0
Регистрация: 29.05.2013
Сообщений: 8

Графический интерфейс для приложения c++

17.11.2014, 21:07. Показов 14950. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мне надо написать графический интерфейс к программе. Выглядеть должно примерно так: два поля для ввода данных (русский текст), одна кнопка. При нажатии на кнопку текст из первого поля попадает в массив char*, проходит преобразование и отображается по втором поле. Код преобразования я уже написал, надо сделать UI. До этого никогда не работал с графическим интерфейсом - только с консолью. С помощью чего можно проще всего реализовать мою задумку?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.11.2014, 21:07
Ответы с готовыми решениями:

графический интерфейс приложения
Доброе время суток! Я недавно начал изучать GLFW и надеялся что с помощью него можно будет создавать граф. интерфейс (кнопки например), но...

Графический интерфейс для игр
Здравствуйте форумчане, хочу потренироваться, в частности в написании игр, изучаю С++, думаю на чем делать графику. Посоветуйте пожалуйста:...

Графический интерфейс для конвертера валют
Помогите создать конвертер валют и графический интерфейс для него. всю голову поломала но ничего не получилось.

21
78 / 78 / 9
Регистрация: 26.12.2011
Сообщений: 217
17.11.2014, 22:43
Студворк — интернет-сервис помощи студентам
Честно говоря, обсуждение расстроило: откуда-то нарисовался OpenGL, еще и Qt добавили.
Убежденный меня опередил, но добавлю и свой вариант решения задачи (проект прикрепил).

Собственно, функция, в которой нужно делать правки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void Cls_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    switch(id) {
    case IDC_BUTTON1:
        
        int n = Edit_GetTextLength(GetDlgItem(hwnd, IDC_EDIT1));
        TCHAR *str = (TCHAR*) malloc(sizeof(TCHAR)*n);
        Edit_GetText(GetDlgItem(hwnd, IDC_EDIT1), str, n+1);
 
        /*
        ....
        TCHAR str содержит введенную строку. Здесь можно её обработать,
        после этого вывести во второй контрол функцией Edit_SetText
        ....
        */
 
        Edit_SetText(GetDlgItem(hwnd, IDC_EDIT2), str);
        free(str);
        break;
    }
}
На данный момент программа, при нажатии на кнопку, просто копирует текст из первого поля во второе. ТС, можешь обрабатывать текст как угодно
Вложения
Тип файла: rar CyberApp.rar (39.2 Кб, 4 просмотров)
1
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
17.11.2014, 22:44
А я так сделаю (фиксированный массив вместо указателя на символ)
C++
#include <windows.h>
 
 
MSG             msg;
HWND            hwnd, edit1, edit2, button;
char            buff[1024];
bool            quit = false;
 
 
LRESULT CALLBACK MsgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message) {
        case WM_QUIT:       PostQuitMessage(0); break;
        case WM_CLOSE:      PostQuitMessage(0); break;
        case WM_DESTROY:    PostQuitMessage(0); break;
        case WM_COMMAND:
            if (LOWORD(wParam)==777) {
                GetWindowText(edit1, buff, 1024);
                /* ЗДЕСЬ ВАША ФУНКЦИЯ ПРЕОБРАЗОВАНИЯ */
                SetWindowText(edit2, buff);
            }
    }
    return DefWindowProc (hWnd, message, wParam, lParam);
}
 
 
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nCmdShow)
{
    WNDCLASSEX wincl;
    wincl.hInstance     = hInst;
    wincl.lpszClassName = "app";
    wincl.lpfnWndProc   = MsgProc;
    wincl.style         = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
    wincl.cbSize        = sizeof(WNDCLASSEX);
    wincl.hIcon         = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm       = NULL;
    wincl.hCursor       = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName  = NULL;
    wincl.cbClsExtra    = 0;
    wincl.cbWndExtra    = 0;
    wincl.hbrBackground = (HBRUSH)(1);
    RegisterClassEx(&wincl);
 
    hwnd = CreateWindowEx(WS_EX_APPWINDOW, "app", "...", WS_OVERLAPPEDWINDOW, 50, 50, 400, 400, HWND_DESKTOP, NULL, hInst, NULL);
    ShowWindow(hwnd, nCmdShow);
 
    edit1   = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("Edit"), TEXT(" "), WS_CHILD|WS_VISIBLE|WS_BORDER, 100, 20, 140, 25, hwnd, NULL, NULL, NULL);
    edit2   = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("Edit"), TEXT(" "), WS_CHILD|WS_VISIBLE|WS_BORDER, 100, 50, 140, 25, hwnd, NULL, NULL, NULL);
    button  = CreateWindow(TEXT("button"), TEXT("Кнопка"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, 10, 10, 80, 30, hwnd, (HMENU)777, hInst, NULL);
 
    while ( !quit ) {
        if ( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) ) {
            if ( msg.message == WM_QUIT )
                quit = true;
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
        else {
            Sleep(1);
        }
    }
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.11.2014, 22:44

IDE для Windows, на которых можно сделать графический интерфейс программы
Ребят, не подскажите, какие есть IDE для Windows, на которых можно сделать графический интерфейс программы.

Как быстро сделать графический интерфейс для консольной программы под windows на С++ ?
В общем я студент прошу сориентировать по такому вопросу. У меня есть консольная программа которая представляет собой базу данных для...

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

Создать графический интерфейс (GUI) для игры "Крестики-нолики"
#include &lt;stdio.h&gt; #include &lt;string.h&gt; char board={}; void clearscreen(void){ for(int i = 0; i&lt;3; i++) ...

Графический интерфейс. С++
Добрый день! Хочу сделать графический интерфейс для этого кода. #include &lt;iostream&gt; #include &lt;windows.h&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru