70 / 47 / 5
Регистрация: 10.01.2017
Сообщений: 1,848
1

WinMain окно из консольного приложения с++

03.07.2020, 20:45. Показов 1662. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте,

Подскажите, а возможно создать окно из обычного консольного приложения c++ ?
Ну там к примеру в отельной функции ? Хотя я даже особо и предположить не могу как, ведь WinMain как бы должен принимать в себя 4 параметра, а в функцию же их не передашь.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.07.2020, 20:45
Ответы с готовыми решениями:

Можно ли создать окно из консольного приложения
Допустим имеется программа, работающая в консоли, как из этой программы в определенный момент...

Непонятное окно при создании консольного приложения win32
При создании консольного приложения win32 выдает такое окно. Притом ни "готово" ни "отмена" нажать...

Вывести в окно консольного приложения числа в виде таблицы
Вывести в окно консольного приложения числа в виде таблицы. 20 21 22 23 24 19 20 21 22 18 19...

Как создать окно внутри консольного приложения?
2 вопроса! 1. Хотелось бы создать внутри консольного приложения окно. Вот тут я привёл код,...

6
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
03.07.2020, 21:41 2
Цитата Сообщение от Optimus11 Посмотреть сообщение
Подскажите, а возможно создать окно из обычного консольного приложения c++ ?
Можно.
Цитата Сообщение от Optimus11 Посмотреть сообщение
а в функцию же их не передашь.
Почему это?
1
70 / 47 / 5
Регистрация: 10.01.2017
Сообщений: 1,848
03.07.2020, 22:00  [ТС] 3
Цитата Сообщение от Croessmah Посмотреть сообщение
Можно.

Почему это?
Но ведь у этих 4ех параметров какие то значения должны быть, если создавать именно приложение WinMain, эти 4 параметра, как бы сама функция winmain заполняет(ну грубо). А я как из int main() их заполню ?
0
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
03.07.2020, 22:25 4
Лучший ответ Сообщение было отмечено Optimus11 как решение

Решение

Цитата Сообщение от Optimus11 Посмотреть сообщение
А я как из int main() их заполню ?
Идем на MSDN и смотрим, какие параметры принимает WinMain и нужны ли они тебе вообще для создания окна.
https://docs.microsoft.com/en-... se-winmain

hInstance - A handle to the current instance of the application.
Нужен. Как получить его другим способом?
GetModuleHandle(NULL) как раз его и вернет.

hPrevInstance - A handle to the previous instance of the application. This parameter is always NULL.
То есть он всегда NULL. Нужен он тебе? Нет. Тебе нужно определять запущено ли уже твое приложение?
Так там же сразу и написано что в этом случае можно создать именованный мьютекс и проверять его при запуске.

lpCmdLine - The command line for the application, excluding the program name. To retrieve the entire command line, use the GetCommandLine function.
Ну, здесь сразу написано, что для получения оного можно использовать функцию GetCommandLine.
Или же можно использовать CommandLineToArgv, если не хочется возиться с единой строкой.

nCmdShow - is a flag that says whether the main application window will be minimized, maximized, or shown normally.
Нужно ли это значение в твоей программе? Я думаю, нет. Но, всё равно возможно узнать этот параметр, как и остальные. Для этого достаточно воспользоваться функцией GetStartupInfo.

Из всего этого для создания окна нужен только hInstance.
1
70 / 47 / 5
Регистрация: 10.01.2017
Сообщений: 1,848
03.07.2020, 22:29  [ТС] 5
Спасибо
0
70 / 47 / 5
Регистрация: 10.01.2017
Сообщений: 1,848
04.07.2020, 18:31  [ТС] 6
Цитата Сообщение от Croessmah Посмотреть сообщение
nCmdShow - is a flag that says whether the main application window will be minimized, maximized, or shown normally.

Нужно ли это значение в твоей программе? Я думаю, нет. Но, всё равно возможно узнать этот параметр, как и остальные. Для этого достаточно воспользоваться функцией GetStartupInfo.

Из всего этого для создания окна нужен только hInstance.
Теоретически оно нужно для функции ShowWindow, как написано:
Управляет отображением окна. Этот параметр игнорируется при первом вызове приложения ShowWindow , если программа, запустившая приложение, предоставляет структуру STARTUPINFO . В противном случае при первом вызове ShowWindow значение должно быть значением, полученным функцией WinMain в ее параметре nCmdShow
Хотя практически, если в ShowWindow за место непосредственно указания nCmdShow или информации из STARTUPINFO - просто указать вручную один из флагов:

SW_HIDE
SW_MAXIMIZE
SW_MINIIMIZE
...
Тоже все работает.
0
Неэпический
17869 / 10634 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
04.07.2020, 19:53 7
Цитата Сообщение от Optimus11 Посмотреть сообщение
Теоретически оно нужно для функции ShowWindow, как написано
У тебя консольное приложение из которого ты хочешь создать окно.
Вряд ли этот параметр необходим.
0
04.07.2020, 19:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.07.2020, 19:53
Помогаю со студенческими работами здесь

При закрытии консольного приложения, открывается окно формы delphi
Доброго времени суток. Написал очень простое консольное приложение (даже не приложение, а так...),...

Возможно ли скрыть окно консольного приложения при его выполнении?
Запускается консольное приложение (время отработки где то 2-3 сек). запускается из программы на...

Не вылазит черное окно консольного приложения после компиляции (Microsoft Visual C++ 2008)
Доброго времени суток! Только что поставил Microsoft Visual C++ 2008, код написал, скомпилировало,...

Запуск консольного приложения из другого приложения
Я понимаю, что мой вопрос уже разжеван. Однако точного ответа я пока на него не нашел. У меня...

Проект консольного приложения из Windows приложения
привет всем. В чем может быть ошибка? 1>MSVCRTD.lib(crtexew.obj) : error LNK2019: ссылка на...

разработка консольного приложения
Нужно Разработать консольное приложение, осуществляющее расчёт значения функции в заданной точке....


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

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

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