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

C++

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

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

17.09.2014, 02:22. Просмотров 1011. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2014, 02:22     Создание оконного приложения
Посмотрите здесь:

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

Создание оконного приложения - C++
Парни, в общем такой движ. Скорее нужен совет, нежели помощь. Нужно напрогать прогу. Смысл в следующем: 1. Оконное приложение. В...

Создание оконного приложения - Visual C++
Доброе время суток. Создаю оконное приложение (Win32) выбираю empty. После создания формы *.cpp и form.h в одном каталоге,а вить должны...

Создание оконного приложения (обучение) - C++
Добрый день. Пытаюсь освоить с++ Установил vs express 2012, создал пустой проект с++ (не win32 или clr, а из раздела "общие"->"пустой...

Запуск оконного приложения из другого оконного приложения - C++ WinAPI
Всем привет. Есть приложение win32 (оконное), которое запускает другое оконное приложение. Как это можно реализовать, если...

Создание оконного приложения для решения метаматической задачи - C++ WinAPI
Нужно написать программу, решающую некую математическую задачу. Среда разработки - Visual Studio. При запуске программы должно появляться...

Удаление мерцания из оконного приложения - C++ WinAPI
Всех с наступающим, товарищи. Написал я такое приложение(писал в DEV-C++): #include <windows.h> #include <windowsx.h> #include...

Нужен пример оконного приложения - C++
кто нить дайте мне приложение с пустым окном

Переделать код для оконного приложения - Visual C++
Здравствуйте! Помогите пожалуйста связать данные с формой. Сколько бы не пыталась не получается((( вот код:#include <clx.h> #include...

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

Модуль генерации меню для оконного приложения - C++
Помогите пожалуйста сделать модуль генерации меню для оконного приложения на C++

Вывод сообщения на экран при запуске оконного приложения - C++ WinAPI
Необходимо сделать через хуки. Пыталась сделать с SetWindowsHookEx. Толка 0. Помоги пожалуйста. Желательно кодом)


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Чумаков Антон
85 / 67 / 17
Регистрация: 07.03.2011
Сообщений: 168
17.09.2014, 09:10     Создание оконного приложения #2
Создаёте в ресурсах диалоговое окно со всеми этими элементами, затем пишете диалоговую процедуру, которая обрабатывает сообщения этого окна и посылает сообщения оконной процедуре WndProc().
Это подробно описано в учебнике Юрия Щупака "Win32 API. Эффективная разработка приложений".
Yandex
Объявления
17.09.2014, 09:10     Создание оконного приложения
Ответ Создать тему
Опции темы

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