Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.03.2012, 23:01   #1
Стремящийся
Форумчанин
 
Аватар для Стремящийся
 
Регистрация: 01.11.2011
Сообщений: 172
По умолчанию Как рекурсивно вызвать WinMain

Всем привет!
Делаю текстовый редактор, надо сделать пункт "Создать". То есть в моем случае необходимо создать еще один модальный диалог с Edit. Препод подсказал, что надо вызвать рекурсивно WinMain. Я нашел 1 и 3 параметр, а два не знаю.

int WINAPI WinMain(HINSTANCE hwnd, HINSTANCE hPrev, LPSTR GetCommandLine(VOID), int nCmdShow);

1- й параметр - дескриптор текущего приложения.

3- й параметр, я нашел в инете, что надо получить с помощью функции, я написал
Желание тысяча возможностей, нежелание - тысяча причин
Стремящийся вне форума Ответить с цитированием
Старый 04.03.2012, 23:30   #2
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

вызывай WinMain c теми же параметрами что и текущий WinMain
rpy3uH вне форума Ответить с цитированием
Старый 04.03.2012, 23:59   #3
Стремящийся
Форумчанин
 
Аватар для Стремящийся
 
Регистрация: 01.11.2011
Сообщений: 172
По умолчанию

Эти параметры надо получить, вот и встал вопрос, как получить еще 2 параметра
Желание тысяча возможностей, нежелание - тысяча причин
Стремящийся вне форума Ответить с цитированием
Старый 05.03.2012, 00:02   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а что вы в своем приложении их не имеете?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 05.03.2012, 00:06   #5
Стремящийся
Форумчанин
 
Аватар для Стремящийся
 
Регистрация: 01.11.2011
Сообщений: 172
По умолчанию

Дело в том, что 2-ой параметр у первого мэйна HINSTANCE hPrev, он не используется вообще, так сказал препод, но стоит для мебели, если я его оставлю ничего неизмениться, с 4- ым тоже вопрос, там должно SW_SHOW, но компилятор пишет, что надо int.
Старый мэйн
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpszCmdLine, int nCmdShow)
Желание тысяча возможностей, нежелание - тысяча причин
Стремящийся вне форума Ответить с цитированием
Старый 05.03.2012, 00:11   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Стремящийся Посмотреть сообщение
Дело в том, что 2-ой параметр у первого мэйна HINSTANCE hPrev, он не используется вообще, так сказал препод, но стоит для мебели, если я его оставлю ничего неизмениться, с 4- ым тоже вопрос, там должно SW_SHOW, но компилятор пишет, что надо int.
Старый мэйн
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpszCmdLine, int nCmdShow)
Не понимаю, с чем у Вас проблемы возникают
Код:
#include <windows.h>

int __stdcall WinMain (HINSTANCE hInstance, HINSTANCE hPrev, LPSTR lpszCmdLine, int nCmdShow)
{
  // ...
  WinMain (hInstance, hPrev, lpszCmdLine, nCmdShow); // рекурсивный вызов
 return 0;
}
netrino вне форума Ответить с цитированием
Старый 05.03.2012, 00:15   #7
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Видимо автору надо вызвать WinMain из оконной процедуры.
EUGY вне форума Ответить с цитированием
Старый 05.03.2012, 00:16   #8
Стремящийся
Форумчанин
 
Аватар для Стремящийся
 
Регистрация: 01.11.2011
Сообщений: 172
По умолчанию

Вы правы, но мне нужно вызвать main, не в main, а в кейсе свитча функции
Желание тысяча возможностей, нежелание - тысяча причин
Стремящийся вне форума Ответить с цитированием
Старый 05.03.2012, 00:17   #9
Стремящийся
Форумчанин
 
Аватар для Стремящийся
 
Регистрация: 01.11.2011
Сообщений: 172
По умолчанию

case ID_FILE_NEW:

int WINAPI WinMain(HINSTANCE hwnd, HINSTANCE hPrev, LPSTR GetCommandLine(VOID), int nCmdShow);

break;
Желание тысяча возможностей, нежелание - тысяча причин
Стремящийся вне форума Ответить с цитированием
Старый 05.03.2012, 00:18   #10
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Сообщение от Стремящийся Посмотреть сообщение
Вы правы, но мне нужно вызвать main, не в main, а в кейсе свитча функции
Код:
  ...
  WinMain (GetModuleHandle (NULL), NULL, GetCommandLine(), SW_SHOW);
Тогда так?
netrino вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заголовок WinMain и буква f после значений. Вопросы. llqs Общие вопросы C/C++ 4 27.05.2011 09:03
как вызвать excell kuzmich Общие вопросы Delphi 5 01.02.2010 21:38
Как вызвать приложение? DimOn4Ik Помощь студентам 1 20.01.2010 21:26
Как вызвать функцию? blackstersl Общие вопросы Delphi 10 07.06.2009 19:22
как вызвать ф-ыю? Natok Помощь студентам 4 28.05.2009 15:01