Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Наподобие TForm.visible

6.4K
09 июня 2004 года
Trifon
18 / / 09.06.2004
Как сделать сабж на C++ на WinAPI?
SetWindowLong не помогает, ShowWindow срабатывает только когда диалог УЖЕ отобразился. установка св-в диалога тоже. нашел выход но кривой.
Сожда. поток, он следит за окном, когда IsWindowVisible возвращает TRUE to выполняется ShowWindow(Hwnd,FALSE). и поток завершает работу.
Как сделать это грамотно?
4.9K
09 июня 2004 года
mrhx
43 / / 04.04.2004
Цитата:
Originally posted by Trifon
Как сделать сабж на C++ на WinAPI?
SetWindowLong не помогает, ShowWindow срабатывает только когда диалог УЖЕ отобразился. установка св-в диалога тоже. нашел выход но кривой.
Сожда. поток, он следит за окном, когда IsWindowVisible возвращает TRUE to выполняется ShowWindow(Hwnd,FALSE). и поток завершает работу.
Как сделать это грамотно?



Я так понял, у тебя диалог и тебе надо, чтобы изначально он был невидим??? Функция DialogBoxParam действительно сделает его видимым независимо от его видимости (WS_VISIBLE). Так что, можешь по WM_INITDIALOG просто убрать его за границу экрана - SetWindowPos(hWnd, NULL, -1000, -1000, 0, 0, SWP_NOZORDER|SWP_NOSIZE). Но чтобы не было видно кнопки на панели задач, диалог должен иметь стиль WS_EX_TOOLWINDOW.

2) Можешь по WM_PAINT сделать ShowWindow(hWnd, SW_HIDE);

надеюсь помог...

:)

6.4K
09 июня 2004 года
Trifon
18 / / 09.06.2004
Цитата:
Originally posted by mrhx


Я так понял, у тебя диалог и тебе надо, чтобы изначально он был невидим??? Функция DialogBoxParam действительно сделает его видимым независимо от его видимости (WS_VISIBLE). Так что, можешь по WM_INITDIALOG просто убрать его за границу экрана - SetWindowPos(hWnd, NULL, -1000, -1000, 0, 0, SWP_NOZORDER|SWP_NOSIZE). Но чтобы не было видно кнопки на панели задач, диалог должен иметь стиль WS_EX_TOOLWINDOW.

2) Можешь по WM_PAINT сделать ShowWindow(hWnd, SW_HIDE);

надеюсь помог...

:)


Я так тоже в раних версиях(до 0.х) делал.
Ну этот способ не является универсальным, да и у меня есть кнопка "свернуть" чтобы кидать в трей. поэтому установка WS_EX_TOOLWINDOW не прокатит.
Всё равно спасибо.
В общем если кому нитересно скачайте с trifon.tk В разделе Мои программы.

4.9K
09 июня 2004 года
mrhx
43 / / 04.04.2004
Цитата:
Originally posted by Trifon

Я так тоже в раних версиях(до 0.х) делал.
Ну этот способ не является универсальным, да и у меня есть кнопка "свернуть" чтобы кидать в трей. поэтому установка WS_EX_TOOLWINDOW не прокатит.
Всё равно спасибо.
В общем если кому нитересно скачайте с trifon.tk В разделе Мои программы.



Значит варианта два:

- Либо использовать CreateDialogParam,
так как она смотрит флаг WS_VISIBLE

- Либо отказаться от такой удобной вещи как диалог
и использовать CreateWindowEx

вот...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог