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

C++

Войти
Регистрация
Восстановить пароль
 
артист
3 / 5 / 4
Регистрация: 17.09.2014
Сообщений: 707
Завершенные тесты: 1
#1

Создание оконного приложения - C++

17.09.2014, 02:22. Просмотров 1035. Ответов 1
Метки нет (Все метки)

Подскажите, как сделать вот такое окно, с объектами на нём?

Создание оконного приложения

Я в C++ полный void.

Пока что только окно понял(не до конца) как вывести, задать размер, убрать меню.

Кликните здесь для просмотра всего текста

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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
// Bone renamer.cpp: определяет точку входа для приложения.
//
 
#include "stdafx.h"
#include "Bone renamer.h"
 
#define MAX_LOADSTRING 100
 
// Глобальные переменные:
HINSTANCE hInst; // текущий экземпляр
TCHAR szTitle[MAX_LOADSTRING]; // Текст строки заголовка
TCHAR szWindowClass[MAX_LOADSTRING]; // имя класса главного окна
 
// Отправить объявления функций, включенных в этот модуль кода:
ATOM MyRegisterClass(HINSTANCE hInstance);
BOOL InitInstance(HINSTANCE, int);
//BOOL GetOpenFileName(LPOPENFILENAME lpofn);
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
 
int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
    UNREFERENCED_PARAMETER(hPrevInstance);
    UNREFERENCED_PARAMETER(lpCmdLine);
 
    // TODO: разместите код здесь.
    MSG msg;
    HACCEL hAccelTable;
 
    // Инициализация глобальных строк
    LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
    LoadString(hInstance, IDC_BONERENAMER, szWindowClass, MAX_LOADSTRING);
    MyRegisterClass(hInstance);
 
    // Выполнить инициализацию приложения:
    if (!InitInstance (hInstance, nCmdShow)) return FALSE;
 
    hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_BONERENAMER));
 
    // Цикл основного сообщения:
    while (GetMessage(&msg, NULL, 0, 0))
    {
        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
 
    return (int) msg.wParam;
}
 
ATOM MyRegisterClass(HINSTANCE hInstance)
{
    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(hInstance, MAKEINTRESOURCE(IDI_BONERENAMER));
    wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
    wcex.lpszClassName = szWindowClass;
    wcex.lpszMenuName = NULL;
    wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL));
 
    return RegisterClassEx(&wcex);
}
 
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
{
    HWND hWnd;
 
    hInst = hInstance; // Сохранить дескриптор экземпляра в глобальной переменной
 
    hWnd = CreateWindow(szWindowClass, szTitle, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_CLIPSIBLINGS, CW_USEDEFAULT, CW_USEDEFAULT, 400, 250, NULL, NULL, hInstance, NULL);
    if (!hWnd) return FALSE;
 
    ShowWindow(hWnd, nCmdShow);
    UpdateWindow(hWnd);
 
    return TRUE;
}
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent;
    PAINTSTRUCT ps;
    HDC hdc;
 
    switch (message)
    {
        case WM_COMMAND:
        {
            wmId    = LOWORD(wParam);
            wmEvent = HIWORD(wParam);
            // Разобрать выбор в меню:
            switch (wmId)
            {
                default: return DefWindowProc(hWnd, message, wParam, lParam);
            }
            break;
        }
        case WM_PAINT:
        {
            hdc = BeginPaint(hWnd, &ps);
 
            // TODO: добавьте любой код отрисовки...
            RECT r; //объявляем экзмепляр структуры RECT - координаты прямоугольника.
            r.left=0; //левый верхний угол
            r.top=250;
            r.right=0; //правый нижний
            r.right=400;
 
            //Заполняем прямоугольник
            FillRect(hdc, &r, (HBRUSH)CreateSolidBrush(RGB(255,0,0)));
            //конец
 
            EndPaint(hWnd, &ps);
            break;
        }
        case WM_DESTROY:
        {
            PostQuitMessage(0);
            break;
        }
        default: return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2014, 02:22
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание оконного приложения (C++):

Создание простого приложения для Windows 9x/NT, решил как смог. Пожалуйста подскажите что исправить или добавить - C++
задание: окно фон зелёный размер 500х400 курсор IDT_HAND При закрытии окна вывести ФИО Мой вариант: ...

Разработка web-приложения, приложения под ОС Android,Windows - C++
Доброго времени суток ребят, кто узрел эту тему прошу не проходите мимо, прошу вашей помощи.Мне требуется определиться с темой для...

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

Как сделать запуск функции по таймеру, например каждые 0.1 секунды после запуска оконного приложения? - C++ Builder
как сделать запуск функции по таймеру, например каждые 0.1 секунды после запуска оконного приложения?

Создание р2р приложения - C++ Builder
ищу информацию по реализации на с++ приложения, которое могло бы обмениваться данными между компьютерами посредством технологии р2р. ...

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Чумаков Антон
85 / 67 / 17
Регистрация: 07.03.2011
Сообщений: 168
17.09.2014, 09:10 #2
Создаёте в ресурсах диалоговое окно со всеми этими элементами, затем пишете диалоговую процедуру, которая обрабатывает сообщения этого окна и посылает сообщения оконной процедуре WndProc().
Это подробно описано в учебнике Юрия Щупака "Win32 API. Эффективная разработка приложений".
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2014, 09:10
Привет! Вот еще темы с ответами:

Создание папки посредством приложения - C++ Builder
Доброго времени суток. Есть задача: при запуске приложения должна создаваться папка с именем в формате: ЧИСЛО_МЕСЯЦ_ГОД, в которой...

Создание настроек для приложения - C++ Builder
Всем привет. Сегодня задумался вот на какую тему настроек ( параметров, которые постоянно задействованы в программе ): Если...

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

Создание оконного приложения - C++/CLI WinForms
Здравствуйте. Вот такой вопрос: у меня есть код консольного приложения. И мне нужно как то сделать оконное приложение. Какие есть варианты?...


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

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

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