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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
СаняЯЯЯЯЯЯ
Сообщений: n/a
11.10.2012, 01:10     Как создать оконное приложение с помощью MinGW #1
Блин, вообще не могу понять как создать оконное приложение с помощью MinGW... это ведь возможно?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2012, 01:10     Как создать оконное приложение с помощью MinGW
Посмотрите здесь:

Оконное приложение на C++ C++
Как переделать исходник в оконное приложение C++
C++ Оконное приложение с постусловием
C++ Как создать статическую библиотеку с расширением .lib в MinGw?
C++ Создать приложение в котором в левой чисти экрана будет куб который будет вращаться с помощью "перетаскивания мыши"
C++ Реализовать оконное приложение из консольного
Алгоритмы со сложным условием продолжением цикла (Оконное приложение) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DU
1478 / 1054 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
11.10.2012, 02:27     Как создать оконное приложение с помощью MinGW #2
мингв это компилятор. одного компилятора недостаточно.
оконные приложения создаются с помощью библиотек или системного API. использовать чистое API тяжело и неудобно.
Qt SDK и QtCreator себе поставте. Там все относительно просто и в сети куча примеров.
хАЛЕКСЕЙх
 Аватар для хАЛЕКСЕЙх
8 / 8 / 2
Регистрация: 11.10.2012
Сообщений: 118
11.10.2012, 10:06     Как создать оконное приложение с помощью MinGW #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.
По другому я не знаю как сделать оконное приложение.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12286 / 6973 / 784
Регистрация: 27.09.2012
Сообщений: 17,286
Записей в блоге: 2
Завершенные тесты: 1
11.10.2012, 13:26     Как создать оконное приложение с помощью MinGW #4
В дополнение к вышесказанному:
Чтобы не вылазила консоль, укажите компилятору g++ опцию -mwindows
хАЛЕКСЕЙх
 Аватар для хАЛЕКСЕЙх
8 / 8 / 2
Регистрация: 11.10.2012
Сообщений: 118
11.10.2012, 13:34     Как создать оконное приложение с помощью MinGW #5
Croessmah, к моему вышеуказанному? и если да, поподробнее можешь показать куда опцию mwindows вставлять
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12286 / 6973 / 784
Регистрация: 27.09.2012
Сообщений: 17,286
Записей в блоге: 2
Завершенные тесты: 1
11.10.2012, 13:57     Как создать оконное приложение с помощью MinGW #6
Цитата Сообщение от хАЛЕКСЕЙх Посмотреть сообщение
Croessmah, к моему вышеуказанному? и если да, поподробнее можешь показать куда опцию mwindows вставлять

g++ main.cpp -o main.exe -mwindows
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2012, 15:25     Как создать оконное приложение с помощью MinGW
Еще ссылки по теме:

C++ Как написать оконное приложение на С++?
Переход на оконное приложение C++
C++ Mingw-w64 MinGW TDM-GCC
C++ Как создать оконное приложение?
C++ Оконное приложение

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

Или воспользуйтесь поиском по форуму:
хАЛЕКСЕЙх
 Аватар для хАЛЕКСЕЙх
8 / 8 / 2
Регистрация: 11.10.2012
Сообщений: 118
11.10.2012, 15:25     Как создать оконное приложение с помощью MinGW #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;
            }
Yandex
Объявления
11.10.2012, 15:25     Как создать оконное приложение с помощью MinGW
Ответ Создать тему
Опции темы

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