Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
САНЯяяяяяя
0 / 0 / 0
Регистрация: 11.03.2016
#1

Как создать оконное приложение с помощью MinGW - C++

11.10.2012, 01:10. Просмотров 2000. Ответов 6
Метки нет (Все метки)

Блин, вообще не могу понять как создать оконное приложение с помощью MinGW... это ведь возможно?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2012, 01:10
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как создать оконное приложение с помощью MinGW (C++):

Как создать оконное приложение? - C++
товарищи! изучал c++ с помощью консольных приложений,программировал в codeblocks. теперь хотелось бы делать проги с норм интерфейсом. ...

Как создать оконное приложение в Visual Studio C++ - C++
Доброго времени суток. Нужна помощь. Как создать оконное приложение в Visual Studio (не знаю т.к. раньше только в консольном писал код),...

Как написать оконное приложение на С++? - C++
Здравствуйте, возможно уже было но все же... Хочу написать оконное приложение,используя C++, знаю,что для этого надо знать WinAPI, но мне...

Как переделать исходник в оконное приложение - C++
Ребята написал исходник, только вот не могу сделать для него оконное приложение, пытался но как то не выходит, надо сделать кнопки "ввести...

Оконное приложение - C++
И снова здравствуйте. Изучаю С++, только в самом начале. Консольные приложения - это круто, но порою надоедает. Насколько сложно делать...

Оконное приложение на C++ - C++
Товарищи программисты, помогите пожалуйста перейти с делфи на с++. Для начала хочется создать оконную программу с картинкой и кнопкой. При...

6
DU
1485 / 1131 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
11.10.2012, 02:27 #2
мингв это компилятор. одного компилятора недостаточно.
оконные приложения создаются с помощью библиотек или системного API. использовать чистое API тяжело и неудобно.
Qt SDK и QtCreator себе поставте. Там все относительно просто и в сети куча примеров.
0
хАЛЕКСЕЙх
9 / 9 / 2
Регистрация: 11.10.2012
Сообщений: 118
11.10.2012, 10:06 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
пропиши это

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
#include "windows.h"
#include "tchar.h"
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
TCHAR WinName[] = _T("MainFrame");
 
HINSTANCE hInst;
INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
 
int APIENTRY _tWinMain(HINSTANCE This, HINSTANCE Prew, LPTSTR cmd, int mode)
        {
            HWND hWnd;
            MSG msg;
            WNDCLASS wc;
// Определение класса окна
            wc.hInstance        = This;                                 // 
            wc.lpszClassName    = WinName;                              // Имя класса окна
            wc.lpfnWndProc      = WndProc;                              // Функция окна
            wc.style            = CS_HREDRAW | CS_VREDRAW;              // Стиль окна
            wc.hIcon            = LoadIcon(NULL, IDI_WINLOGO);          // Стандартная иконка
            wc.hCursor          = LoadCursor(NULL, IDC_ARROW);          // Стандартный курсор
            wc.lpszMenuName     = NULL;                                 // Меню ( NULL = нету )
            wc.cbClsExtra       = 0;                                    // Нет дополнительных данных класса
            wc.cbWndExtra       = 0;                                    // Нет дополнительных данных окна
// Заполнение окна белым цветом
            wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
// Регистрация класса окна
            if(!RegisterClass(&wc)) return 0;
// Создание окна
            hWnd = CreateWindow(WinName,                                // Имя класса окна
                                _T("Каркас Windows-приложения"),        // Заголовок окна
                                WS_OVERLAPPEDWINDOW,                    // Стиль окна
                                CW_USEDEFAULT,                          // Х - Размер окна
                                CW_USEDEFAULT,                          // У - Размеры окна 
                                CW_USEDEFAULT,                          // Ширина
                                CW_USEDEFAULT,                          // Высота
                                HWND_DESKTOP,                           // Дескриптор родительского окна
                                NULL,                                   // Нет меню
                                This,                                   // Дескриптор приложения
                                NULL);                                  // Дополнительной информации нет
// Показать окно
            ShowWindow(hWnd, mode);
 
// Цикл обработки сообщений
            while(GetMessage(&msg, NULL, 0, 0))
                    {
                        TranslateMessage(&msg);                         // Функция нажатия кодов нажатой клавиши
                        DispatchMessage(&msg);                          // Посылает сообщение функции WndProc()
                    }
        return 0;
        }
 
LRESULT CALLBACK WndProc(HWND hWnd,
                         UINT message,
                         WPARAM wParam,
                         LPARAM lParam)
            {
                switch(message)
                    {
                        case WM_DESTROY :  PostQuitMessage(0);
                            break;
                        default: return DefWindowProc(hWnd, message, wParam, lParam);
                    }
            }

Это код стандартный, и работает в любом компиляторе где есть библиотеки ( windows.h и tchar.h )
Что это такое обьяснять небуду.

Я там комментарии оставил, вдруг помогут.
И кстати, хочешь писать оконные приложения прочитай книжку по Win32 API, это кстати код Win32 API.
По другому я не знаю как сделать оконное приложение.
0
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,777
Записей в блоге: 3
Завершенные тесты: 1
11.10.2012, 13:26 #4
В дополнение к вышесказанному:
Чтобы не вылазила консоль, укажите компилятору g++ опцию -mwindows
0
хАЛЕКСЕЙх
9 / 9 / 2
Регистрация: 11.10.2012
Сообщений: 118
11.10.2012, 13:34 #5
Croessmah, к моему вышеуказанному? и если да, поподробнее можешь показать куда опцию mwindows вставлять
0
Croessmah
Ушел
13777 / 8027 / 926
Регистрация: 27.09.2012
Сообщений: 19,777
Записей в блоге: 3
Завершенные тесты: 1
11.10.2012, 13:57 #6
Цитата Сообщение от хАЛЕКСЕЙх Посмотреть сообщение
Croessmah, к моему вышеуказанному? и если да, поподробнее можешь показать куда опцию mwindows вставлять

g++ main.cpp -o main.exe -mwindows
0
хАЛЕКСЕЙх
9 / 9 / 2
Регистрация: 11.10.2012
Сообщений: 118
11.10.2012, 15:25 #7
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Croessmah,
g++ main.cpp -o main.exe -mwindows
Аа-а ты про это! я думал в мой код вставить

Добавлено через 1 час 18 минут
Извените, я тут одну ошибку допустил вот правильный вариант

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
#include <windows.h>
#include <tchar.h>
 
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
TCHAR WinName[] = _T("MainFrame");
 
INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM);
 
int APIENTRY _tWinMain(HINSTANCE This, HINSTANCE Prew, LPTSTR cmd, int mode){
    HWND hWnd;
    MSG msg;
    WNDCLASS wc;
 
            wc.hInstance        = This;                                 // 
            wc.lpszClassName    = WinName;                              // Имя класса окна
            wc.lpfnWndProc      = WndProc;                              // Функция окна
            wc.style            = CS_HREDRAW | CS_VREDRAW;              // Стиль окна
            wc.hIcon            = LoadIcon(NULL, IDI_WINLOGO);          // Стандартная иконка
            wc.hCursor          = LoadCursor(NULL, IDC_ARROW);          // Стандартный курсор
            wc.lpszMenuName     = NULL;                                 // Меню ( NULL = нету )
            wc.cbClsExtra       = 0;                                    // Нет дополнительных данных класса
            wc.cbWndExtra       = 0;                                    // Нет дополнительных данных окна
 
    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
 
    if(!RegisterClass(&wc)) return 0;
 
    hWnd = CreateWindow(WinName,
                        _T("Каркас Windows-приложения"),
                        WS_OVERLAPPEDWINDOW,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        CW_USEDEFAULT,
                        HWND_DESKTOP, 
                        NULL, 
                        This, 
                        NULL);
 
    ShowWindow(hWnd, mode);
 
    while(GetMessage(&msg, NULL, 0, 0)){
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
return 0;
}
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
    switch(message){
        case WM_DESTROY : PostQuitMessage(0);
                          break;
        default: return DefWindowProc(hWnd, message, wParam, lParam);
    }
return 0;
}
вот здесь

C++
1
2
3
4
5
6
7
8
9
10
11
12
LRESULT CALLBACK WndProc(HWND hWnd,
                         UINT message,
                         WPARAM wParam,
                         LPARAM lParam)
            {
                switch(message)
                    {
                        case WM_DESTROY :  PostQuitMessage(0);
                            break;
                        default: return DefWindowProc(hWnd, message, wParam, lParam);
                    }
            }
я забыл написать
C++
1
return 0;
чтобы было понятно сравните
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
LRESULT CALLBACK WndProc(HWND hWnd,
                         UINT message,
                         WPARAM wParam,
                         LPARAM lParam)
            {
                switch(message)
                    {
                        case WM_DESTROY :  PostQuitMessage(0);
                            break;
                        default: return DefWindowProc(hWnd, message, wParam, lParam);
                    }
             return 0;
            }
0
11.10.2012, 15:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2012, 15:25
Привет! Вот еще темы с ответами:

Переход на оконное приложение - C++
Здравствуйте форумчане! Хоть и тема эта заезженная, но почему то вся инфа в нете старая и в свете перехода на с++11 я ничего толком не...

Оконное приложение с постусловием - C++
Разработать оконное приложение с использованием оператора цикла с постусловием для вычисления значений след. функции ...

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

Как создать статическую библиотеку с расширением .lib в MinGw? - C++
Зачем это надо? - хочу скомпилировать библиотеку в MinGw и подключить к с++builder. Возможно ли это? а может, если я по-варварски возьму...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru