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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2012, 21:14   #1
YourLastSong
Пользователь
 
Регистрация: 12.12.2010
Сообщений: 75
По умолчанию Программа виснет на CreateWindowEx

Здравствуйте, уважаемые господа.

Имеется след. код:

Код:
HWND ConsoleWnd;

BOOL CALLBACK EnumWindowsProc (HWND hWnd, LPARAM lParam)
{
    if (!IsWindowVisible (hWnd))
  return TRUE;

    DWORD pid;
 GetWindowThreadProcessId (hWnd, &pid);
 if (GetCurrentProcessId () == pid)
  ConsoleWnd = hWnd;

    if (lParam == 0)
  EnumWindows (EnumWindowsProc, 1);
    return TRUE;
}

int main ()
{
...

EnumWindows (EnumWindowsProc, 0);

int Style = WS_CLIPSIBLINGS | WS_CHILD | WS_VISIBLE | SS_BITMAP | WS_TABSTOP | WS_DISABLED;

CreateWindowEx (0, "static", NULL, Style, X, Y, 0, 0, ConsoleWnd, (HMENU)123, GetModuleHandle (0), NULL);

...

return 0;
}
При попытке запустить второй экземпляр приложения, оно виснет на функции CreateWindowEx.

Проверял возвращаемое функцией значение - говорит, что всё норм.

Что не так?

Заранее благодарю за возможные ответы.

Последний раз редактировалось rpy3uH; 11.01.2012 в 22:21.
YourLastSong вне форума Ответить с цитированием
Старый 11.01.2012, 23:16   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
CreateWindowEx (0, "static", NULL, Style, X, Y, 0, 0, ConsoleWnd, (HMENU)123, GetModuleHandle (0), NULL);
че за отсебятину вы несете?
есть меню, то его хендл, нету то 0.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.01.2012, 23:52   #3
YourLastSong
Пользователь
 
Регистрация: 12.12.2010
Сообщений: 75
По умолчанию

Да, верно, однако проблемы это не решает.
YourLastSong вне форума Ответить с цитированием
Старый 11.01.2012, 23:59   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

попробуйте создавать свое окно, а не привязываться к консоли.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.01.2012, 00:14   #5
YourLastSong
Пользователь
 
Регистрация: 12.12.2010
Сообщений: 75
По умолчанию

Убрать WS_CHILD?

Нельзя, к сожалению.
YourLastSong вне форума Ответить с цитированием
Старый 12.01.2012, 00:43   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

забыть про ConsoleWnd.
создайте свое окно, свой класс если так нужно.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.01.2012, 00:47   #7
YourLastSong
Пользователь
 
Регистрация: 12.12.2010
Сообщений: 75
По умолчанию

Цитата:
забыть про ConsoleWnd
Почему?

Ведь первый экземпляр приложения работает, как надо.

Цитата:
создайте свое окно
Нужно использовать именно окно консоли.
YourLastSong вне форума Ответить с цитированием
Старый 12.01.2012, 00:59   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Ведь первый экземпляр приложения работает, как надо.
одновременно не работают?
или по отдельности?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.01.2012, 02:09   #9
YourLastSong
Пользователь
 
Регистрация: 12.12.2010
Сообщений: 75
По умолчанию

Цитата:
одновременно не работают?
или по отдельности?
У меня не работает только второй экземпляр приложения.
YourLastSong вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Виснет программа на Windows Form pro100saniok Помощь студентам 0 23.03.2011 12:08
проблема с CreateWindowEx MasterSporta Win Api 3 17.03.2011 02:52
Программа виснет при исполнении цикла Dima_D Общие вопросы Delphi 9 16.08.2010 23:45
FormStyle:=none, с помощью CreateWindowEx Alex Cones Общие вопросы Delphi 5 06.11.2009 19:45
Создание окна через CreateWindowEx Nowichok Win Api 18 16.12.2006 16:37