Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Программирование под Windows > WinAPI
Перезагрузить страницу Модальные окна появляются только после нажатия Alt
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
MasterKlass MasterKlass вне форума
Member
 
Сообщений: 22
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 07.03.2005
По умолчанию Модальные окна появляются только после нажатия Alt - 26.12.2005, 17:13

Проблема в том, что ни пользовательские модальные окна (которые я создал сам из шаблонов), так и диалоги типа ChooseColor b MessageBox не появляются сразу а только после нажатия кнопки Alt. Что делать???
Ответить с цитированием
  (#2 (permalink)) Старый
Jonano Jonano вне форума
Специалист
 
Аватар для Jonano
 
Сообщений: 3,541
Сказал(а) спасибо: 2
Поблагодарили 14 раз(а) в 14 сообщениях
Регистрация: 19.04.2005
По умолчанию 26.12.2005, 18:47

Может глюк системы какой?
Ты вообще в чём их создаёшь?
Ответить с цитированием
  (#3 (permalink)) Старый
Vedrus Vedrus вне форума
Новичок
 
Сообщений: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 10.06.2006
По умолчанию 10.06.2006, 20:23

Здравствуй MasterKlass, у меня была похожая проблема. Я сделал следующее. Подвигал окно и оно появилось. Это конечоно извращённое решение (шутка ли, определить хэндл MessageBox'а), но ничего лучшего я не придумал. Вобщем вот код:

В WM_CREATE:
Код:
hMsgBoxHook = SetWindowsHookEx(WH_CBT, CBTProc, NULL, GetCurrentThreadId());
Обработчик-перехватчик:
Код:
LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
/* Перехватчик хэндла всех окон приложения */
{
    RECT rc;
    HWND hwnd;
    
    if(nCode < 0)
  return CallNextHookEx(hMsgBoxHook, nCode, wParam, lParam);
    switch(nCode)
    {
    case HCBT_ACTIVATE:
        hwnd = (HWND) wParam;
  SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) | WS_VISIBLE);
  GetWindowRect(hwnd, &rc);
  MoveWindow(hwnd, rc.left-2000, rc.top, rc.right-rc.left, rc.bottom-rc.top, TRUE);
  MoveWindow(hwnd, rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, TRUE);
  return 0;
    }
    return CallNextHookEx(hMsgBoxHook, nCode, wParam, lParam);
} // LRESULT CALLBACK CBTProc
Если кто решил менее извращённо буду рад услышать.
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
После нажатия кнопки пуска проходит 10 мин bdfaa Windows XP 24 15.05.2011 16:09
Модальные окна в Vista и Windows 7 Graf_L C++ Builder 1 30.11.2010 02:38
После перезагрузки система начала выдавать синие окна ( окна смерти ) K21ANGEL Любые вопросы от новичков 3 20.04.2010 01:54
После простоя компьютера Windows XP загружается только после перезагрузки ПК. Klipius Техническая поддержка 30 23.01.2009 19:47
Компьютер зависает в играх, появляются синие окна. Splash Техническая поддержка 12 06.03.2008 15:24
Монитор загорается только после нажатия Reset Set Мониторы 2 20.02.2008 15:01
Компьютер включается только после двукратного нажатия кнопки. nazarei Техническая поддержка 2 04.07.2007 02:21
выполнение цикла после нажатия клавиши diment Visual Basic 2 13.09.2006 11:12
CodeGuard Log после компиляции появляются ошибки Alex_Sosim C++ Builder 5 31.08.2006 13:48
Как после нажатия еsc закрыть консольную программу Walker Visual C++ 12 24.04.2005 01:04
Модальные диалоговые окна imported_Frost Visual C++ 19 16.04.2004 15:22



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов