Войти

Показать полную графическую версию : VBA | Несворачиваемое и незакрываемое окно


SSseregaSS
30-07-2006, 22:28
Скажите пожалуйста как в Visual Basic 6.0
програмно сделать так, чтобы кнопки "Windows" (или
кнопки "Окно") не работала!
Просто я хочу сделать прогу, которая была б поверх
всех окон (в т.ч. поверх рабочего стола) и её нельзя
было бы убрать (закрыть, или свернуть!)

DillerInc
31-07-2006, 16:09
SSseregaSS
Если я правильно понял,то делается это тривиально.
Главное окно программы просто создаётся с определённым стилем(точнее сказать -- без определённых стилей):

push 0 ;lpParam
push hInst ;hInstance
push NULL ;menu
push NULL ;parent hwnd
push 280 ;высота окна
push 430 ;ширина окна
push 300 ;координата y левого верхнего угла окна
push 350 ;координата x левого верхнего угла
push WS_CAPTION ;стиль окна
push offset szTitleName ;Строка заголовка окна
push offset szClassName ;имя класса окна
push WS_EX_TOPMOST ;Расширенный стиль окна
call CreateWindowExA

Это код на ассемблере,но суть будет везде одна и та же.С помощью функции CreateWindowExA создаётся главное окно,среди параметров которого присутствуют и стили этого окна.
Расширенный стиль WS_EX_TOPMOST заставляет окно быть поверх всего остального.
Стиль WS_CAPTION только создаёт заголовок окна.
Убить такое окно можно будет,только убив процесс этого окна с помощью Диспетчера задач.
Если хочешь нормальный вид окна(с кнопками),то в данном случае необходимо добавить стили WS_SYSMENU, WS_MINIMIZEBOX и т.д.

hasherfrog
01-08-2006, 09:53
DillerInc
А "свернуть все окна" подействует?
А "Закрыть" из меню на таскбаре?
Просто интересно...

DillerInc
01-08-2006, 17:01
А "свернуть все окна" подействует?
Сейчас пробовал -- окно так и остаётся висеть на экране в то время как все остальные окна сворачиваются,просто становится неактивным.
А "Закрыть" из меню на таскбаре?
...в том-то и дело,что та таскбаре не появляется вкладки этого окна,поэтому и закрывать получается нечего.
Однако на комбинацию "Alt+F4" окно реагирует и закрывается.

hasherfrog
01-08-2006, 19:22
Ясно, спасиб. А то лень проверять :-)




© OSzone.net 2001-2012