Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.65
zigr0lf
0 / 0 / 0
Регистрация: 29.05.2013
Сообщений: 8
17.11.2014, 21:07     Графический интерфейс для приложения c++ #1
Мне надо написать графический интерфейс к программе. Выглядеть должно примерно так: два поля для ввода данных (русский текст), одна кнопка. При нажатии на кнопку текст из первого поля попадает в массив char*, проходит преобразование и отображается по втором поле. Код преобразования я уже написал, надо сделать UI. До этого никогда не работал с графическим интерфейсом - только с консолью. С помощью чего можно проще всего реализовать мою задумку?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.11.2014, 21:07     Графический интерфейс для приложения c++
Посмотрите здесь:

Графический интерфейс C++
C++ Графический интерфейс
графический интерфейс приложения C++
C++ Графический интерфейс
C++ IDE для Windows, на которых можно сделать графический интерфейс программы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,586
17.11.2014, 21:14     Графический интерфейс для приложения c++ #2
В какой среде программируешь?
zigr0lf
0 / 0 / 0
Регистрация: 29.05.2013
Сообщений: 8
17.11.2014, 21:17  [ТС]     Графический интерфейс для приложения c++ #3
Visual Studio 2012
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
17.11.2014, 21:18     Графический интерфейс для приложения c++ #4
zigr0lf, проще всего на WinAPI, но нужно будет немного почитать теорию, чтобы разобраться, как слать сообщения для получения/установки текста из/в контролла(е).
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,586
17.11.2014, 21:20     Графический интерфейс для приложения c++ #5
Ну там либо проект с MFC, либо проект CLR (.NET). Можно также чистый WinAPI, но будет сложно.
MEGA-Andrei101
 Аватар для MEGA-Andrei101
2 / 2 / 0
Регистрация: 15.05.2014
Сообщений: 18
17.11.2014, 21:21     Графический интерфейс для приложения c++ #6
на чисто с++ если это и возможно то это самоубийство
тебе нужен API рекомендую OpenGL а именно GLUT штука кроссплатформенная и мощная но трудная
если надо быстрей то смело юзаем библиотеки qt(кроссплатформенныей на все случаи жизни)
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,586
17.11.2014, 21:23     Графический интерфейс для приложения c++ #7
Причём тут OpenGL, если ему нужен обычный Windows-интерфейс? Qt -это сторонняя библиотека.
MEGA-Andrei101
 Аватар для MEGA-Andrei101
2 / 2 / 0
Регистрация: 15.05.2014
Сообщений: 18
17.11.2014, 21:32     Графический интерфейс для приложения c++ #8
по мне так qt библиотеки куда проще и шири чем этот .net
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,586
17.11.2014, 21:35     Графический интерфейс для приложения c++ #9
Для VS .NET - родной. А Qt ведь ещё и редактор форм свой требует.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
17.11.2014, 21:37     Графический интерфейс для приложения c++ #10
Цитата Сообщение от MEGA-Andrei101 Посмотреть сообщение
тебе нужен API рекомендую OpenGL а именно GLUT штука кроссплатформенная и мощная но трудная
А потом встречай баги с текстурными шрифтами от видеокарты к видеокарте. GLUT не сложная, на ней студентоту учат. И никакая она не мощная.
RefSol
220 / 159 / 39
Регистрация: 31.10.2010
Сообщений: 496
17.11.2014, 21:39     Графический интерфейс для приложения c++ #11
zigr0lf, бери C++Builder.
C++Builder - IDE, интегрированная среда разработки, в том числе графического интерфейса и С++.
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,586
17.11.2014, 21:41     Графический интерфейс для приложения c++ #12
Цитата Сообщение от RefSol Посмотреть сообщение
бери C++Builder
Я бы не рекомендовал. Это тупиковый вариант, попытка сделать C++ на базе Delphi. Лучше уж Qt.
Убежденный
Системный программист
 Аватар для Убежденный
14200 / 6215 / 986
Регистрация: 02.05.2013
Сообщений: 10,363
Завершенные тесты: 1
17.11.2014, 21:44     Графический интерфейс для приложения c++ #13
Цитата Сообщение от zigr0lf Посмотреть сообщение
два поля для ввода данных (русский текст), одна кнопка. При нажатии на кнопку текст из первого поля попадает в массив char*, проходит преобразование и отображается по втором поле.
Парни, вы чего ? Какие Builder-ы, какие C#/Qt и тем более OpenGL ?
GUI по описанию выше делается на WinAPI в 50 строк.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
17.11.2014, 21:47     Графический интерфейс для приложения c++ #14
Цитата Сообщение от Убежденный Посмотреть сообщение
Задача решается на WinAPI в 50 строк.
Но если компилятор у ТС не микрософтовский, то интерфейс будет квадратный как в windows 98
RefSol
220 / 159 / 39
Регистрация: 31.10.2010
Сообщений: 496
17.11.2014, 21:51     Графический интерфейс для приложения c++ #15
nmcf, C++Builder - это не попытка, а реально работающий проект уже многие годы, на много дольше Qt, и C++Builder хорошо себя зарекомендовал, особенно для быстрой разработки.
Вот насчёт Qt - это точно тупиковый проект.
Если уж говорить о том, какая среда и компилятор С++ наиболее продвинут то это компилятор Intel, а затем gcc.
А для быстрой разработки с поддержкой стандартов и интегрированной средой разработки графического интерфейса лучшее решение проверенное временем: C++Builder.

Добавлено через 4 минуты
Цитата Сообщение от Убежденный Посмотреть сообщение
GUI по описанию выше делается на WinAPI в 50 строк.
тогда хоть книгу в помощь:
Ганеев Р. М. Проектирование интерфейса пользователя средствами Win32 API
(легко найти в сети электронную версию, т.к. это открытое учебное пособие)
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,586
17.11.2014, 22:07     Графический интерфейс для приложения c++ #16
C++Builder - это не попытка, а реально работающий проект
Интересовался я этим проектом в своё время. 100% VCL от Delphi, только записано в стиле C++. Имена функций WinAPI не совпадают с документацией Microsoft, имена структур тоже. В общем только мучиться. Никаких преимуществ от C++ не выходит. Лучше тогда уж Delphi использовать.
Цитата Сообщение от Убежденный Посмотреть сообщение
GUI по описанию выше делается на WinAPI в 50 строк.
Для тех, кто знает как. Задавать координаты вручную не видя окна - это уже неудобно.
Убежденный
Системный программист
 Аватар для Убежденный
14200 / 6215 / 986
Регистрация: 02.05.2013
Сообщений: 10,363
Завершенные тесты: 1
17.11.2014, 22:19     Графический интерфейс для приложения c++ #17
Цитата Сообщение от programina Посмотреть сообщение
Но если компилятор у ТС не микрософтовский
zigr0lf написал: "Visual Studio 2012"

Цитата Сообщение от programina Посмотреть сообщение
то интерфейс будет квадратный как в windows 98
А манифесты для кого придумали ?

Цитата Сообщение от nmcf Посмотреть сообщение
Для тех, кто знает как. Задавать координаты вручную не видя окна - это уже неудобно.
А редакторы ресурсов для кого придумали ?
И вообще, вот, рождено за двадцать минут:
Код
// Resource.rc

#define ID_DLG_MAIN     101
#define ID_EDIT_FROM    1001
#define ID_EDIT_TO      1002
#define ID_BTN_CONVERT  1003

IDD_FORMVIEW DIALOGEX 0, 0, 186, 105
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_OVERLAPPEDWINDOW | WS_EX_APPWINDOW
CAPTION "Transform Text - Demo"
FONT 8, "MS Shell Dlg", 400, 0, 0x0
BEGIN
    EDITTEXT    ID_EDIT_FROM,6,18,174,12,ES_AUTOHSCROLL
    EDITTEXT    ID_EDIT_TO,6,54,174,12,ES_AUTOHSCROLL
    PUSHBUTTON  "&Convert",ID_BTN_CONVERT,66,84,50,14
    LTEXT       "Source Text",IDC_STATIC,6,6,40,8
    LTEXT       "Result",IDC_STATIC,6,42,21,8
END
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// Program.cpp
 
#include <Windows.h>
#include <string>
#include <vector>
#include "resource.h"
 
 
 
std::wstring ConvertText(std::wstring const & Text)
{
    std::wstring RetValue;
 
    for (std::wstring::const_iterator it = Text.begin();
        it != Text.end();
        ++it)
    {
        RetValue += *it;
        RetValue += L"_";
    }
 
    return RetValue;
}
 
 
 
INT_PTR
_stdcall
MainDlgProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg)
    {
        case WM_CLOSE:
        {
            EndDialog(hWnd, 0);
        }
        break;
 
        case WM_COMMAND:
        {
            if (
                (BN_CLICKED     == HIWORD(wParam)) &&
                (ID_BTN_CONVERT == LOWORD(wParam))
                )
            {
                int TextLen = SendDlgItemMessageW(
                        hWnd,
                        ID_EDIT_FROM,
                        WM_GETTEXTLENGTH,
                        NULL,
                        NULL
                        );
 
                using namespace std;
 
                if (TextLen)
                {
                    ++TextLen; // Add space for null terminator.
                    vector<wchar_t> Buffer(TextLen);
                    SendDlgItemMessageW(hWnd, ID_EDIT_FROM, WM_GETTEXT, TextLen, (LPARAM)&Buffer[0]);
                    wstring const Result = ConvertText(&Buffer[0]);
                    SendDlgItemMessageW(hWnd, ID_EDIT_TO, WM_SETTEXT, NULL, (LPARAM)Result.c_str());
                }
            }
        }
        break;
    }
 
    return 0;
}
 
 
 
int _stdcall WinMain(
    HINSTANCE               hInstance,
    HINSTANCE               /* Unused */,
    LPSTR                   /* pCmdLine */,
    int                     /* fShow    */
    )
{
    DialogBoxParamW(hInstance, MAKEINTRESOURCEW(ID_DLG_MAIN), NULL, MainDlgProc, NULL);
    return EXIT_SUCCESS;
}
Добавляет подчеркивание к каждому символу исходной строки.
Как видите, абсолютно ничего, что требовало бы сторонних сред и
прочих гигабайтовых монстров
nmcf
4303 / 3724 / 1255
Регистрация: 14.04.2014
Сообщений: 14,586
17.11.2014, 22:23     Графический интерфейс для приложения c++ #18
Разве так можно делать? CreateWindow() уже не используется?
Цитата Сообщение от Убежденный Посмотреть сообщение
А редакторы ресурсов для кого придумали ?
А где редактор ресурсов в VS?
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
17.11.2014, 22:25     Графический интерфейс для приложения c++ #19
Цитата Сообщение от Убежденный Посмотреть сообщение
А манифесты для кого придумали ?
Пробовала только на ХР. Про 7-ку ничего не знаю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.11.2014, 22:36     Графический интерфейс для приложения c++
Еще ссылки по теме:

C++ Графический интерфейс для игр
Графический интерфейс C++
C++ Графический интерфейс

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

Или воспользуйтесь поиском по форуму:
Убежденный
Системный программист
 Аватар для Убежденный
14200 / 6215 / 986
Регистрация: 02.05.2013
Сообщений: 10,363
Завершенные тесты: 1
17.11.2014, 22:36     Графический интерфейс для приложения c++ #20
Цитата Сообщение от nmcf Посмотреть сообщение
Разве так можно делать? CreateWindow() уже не используется?
DialogBoxParam/CreateDialogParam - это обертки над CreateWindow(Ex),
она так или иначе вызывается.

Цитата Сообщение от nmcf Посмотреть сообщение
А где редактор ресурсов в VS?
Solution Explorer, правой кнопкой мыши контекстное меню, далее "Add Resource...".
Насколько я знаю, только в express-версиях его нет.

Цитата Сообщение от programina Посмотреть сообщение
Пробовала только на ХР. Про 7-ку ничего не знаю.
Там те же самые механизмы.
Yandex
Объявления
17.11.2014, 22:36     Графический интерфейс для приложения c++
Ответ Создать тему
Опции темы

Текущее время: 18:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru