0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 16
1

Создание окна в отдельной функции

30.06.2017, 14:07. Показов 781. Ответов 8

Всем привет!
Хочу вынести функцию создания и отображения окна в отдельный файл.
Но функция использует прототип WinMain главной функции и функцию обработки сообщений.
Как это можно реализовать?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.06.2017, 14:07
Ответы с готовыми решениями:

Создание динамического массива в отдельной функции
Здравствуйте. Объясните пожалуйста, почему для создания динамического массива в функции мы должны...

Сворачивание окна отдельной кнопкой
Всем доброго времени суток. Кто знает как продублировать кнопку "minimize", а вернее ту функцию...

Создание окна с графиком функции
Добрый день. Необходимо создать окно, в окне должен выводиться график функции y=x^3, пробую для...

Вычислительные функции выполнить в отдельной функции или процедуре
Program lab1; uses crt; Var p:longint; x:integer; Function st(y:integer):longint; Var...

8
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
30.06.2017, 17:11 2
Передавать в качестве параметров. Хотя, зачем там WinMain не ясно.
0
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 16
30.06.2017, 17:32  [ТС] 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
int WINAPI WinMain (HINSTANCE hinstance,
                    HINSTANCE hprevinstance,
                    LPSTR lpsmdline,
                    int ncmdshow)
 
  {
 
 
     WNDCLASSEX w;    // Класс создаваемого сообщения
   HWND hwnd;       // Дескриптор окна
   MSG msg;         // Структура сообщения
 
   // Заполнение структуры класса
 
   w.cbSize = sizeof(WNDCLASSEX);
   w.style = CS_DBLCLKS|CS_OWNDC|CS_HREDRAW|CS_VREDRAW;     // Настройка стиля окна
   w.lpfnWndProc = (WNDPROC)WndProc;
   w.cbClsExtra = 0;
   w.cbWndExtra = 0;
   w.hInstance = hinstance;
   w.hIcon = w.hIconSm = LoadIcon(hinstance, MAKEINTRESOURCE(ICON1));
   w.hCursor = LoadCursor(hinstance, MAKEINTRESOURCE(CUR1));
   w.hbrBackground = NULL;
   w.lpszMenuName = NULL;
   w.lpszClassName = "WINDOWCLASS_1";
 
   // Регистрация класса
   if(!RegisterClassEx(&w))
     return 0;
 
   // Создание окна
   if(!(hwnd = CreateWindowEx(WS_EX_CLIENTEDGE,
                              "WINDOWCLASS_1",
                              "My Window",        // Заголовок окна
                              WS_OVERLAPPEDWINDOW|WS_VISIBLE,
                              WIDTH/2-width/2, HEIGHT/2-height/2,
                              width, height,
                              HWND_DESKTOP,
                              NULL,
                              hinstance,
                              NULL
                         )))
 
     return 0;
вот часть кода,
0
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
30.06.2017, 17:40 4
Ну вот, тебе придётся передавать значения и ссылки - всё, что требуется для CreateWindowEx().
Ты усложняешь программу, а цели не ясны.
0
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 16
30.06.2017, 17:47  [ТС] 5
Т.е. если я выношу функции регистрации класса окна и создания окна в отдельный файл в отдельную функцию, то указывать &hinstance вместо hinstance и тд?
0
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
30.06.2017, 18:24 6
hinstance передаётся по значению. Указатель нужен для структур типа WNDCLASSEX.
0
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 16
30.06.2017, 19:00  [ТС] 7
Цитата Сообщение от nmcf Посмотреть сообщение
Ты усложняешь программу, а цели не ясны.
Хочу сразу научиться, как работать с многофайловым проектом, чтобы не бегать по одному тексту в поисках нужной функции, если ее нужно изменить
0
7166 / 6141 / 2802
Регистрация: 14.04.2014
Сообщений: 26,462
30.06.2017, 19:02 8
Многофайловые проекты не для этого предназначены. Там обычно классы размещаются.
0
Brainsbreaker
896 / 372 / 52
Регистрация: 01.02.2011
Сообщений: 1,592
05.07.2017, 21:39 9
VadimAnimator, main.cpp оставь как есть, не делай кашу, а вот всё остальное, что будешь добавлять можешь разбрасывать по файлам.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2017, 21:39
Помогаю со студенческими работами здесь

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

Создание формы с отдельной таблицей ?
Всем доброго времени суток. У меня такой вот вопрос, есть ли возможность на форме сделать отднльную...

Создание файла в отдельной директории
У меня есть папка /task , в которой лежит код. Этим кодом надо создать страницу в корне или папке...

Создание отдельной папки для каждой загрузки
Здравствуйте. У меня есть страница с формой для загрузки документов. Документы отправляются в...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru