Страница: 1 |
Страница: 1 |
Вопрос: Окно во весь екран
Добавлено: 25.03.06 15:16
Автор вопроса: Shovgenyuk | ICQ: 158931552
Как сделать MDI-окно во весь екран? Чтобы не было видно кнопки пуск, панели задач, трея и т.д.
Ответы
Всего ответов: 15
Номер ответа: 1
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #1
Добавлено: 25.03.06 16:30
Убери панель задач
Номер ответа: 2
Автор ответа:
VerhoLom
Вопросов: 20
Ответов: 285
Профиль | | #2
Добавлено: 25.03.06 16:32
А еще лучше пошли ей WM_DESTROY. Интересно, а что произойдет? Она грохнется?
Номер ответа: 3
Автор ответа:
Tamplier
ICQ: 298742928
Вопросов: 58
Ответов: 340
Профиль | | #3
Добавлено: 25.03.06 16:54
Должна. А потом должна восстановиться. Вроде.
Номер ответа: 4
Автор ответа:
Shovgenyuk
ICQ: 158931552
Вопросов: 18
Ответов: 26
Профиль | | #4
Добавлено: 25.03.06 17:33
Это как послать ей WM_DESTROY ?
Номер ответа: 5
Автор ответа:
Shovgenyuk
ICQ: 158931552
Вопросов: 18
Ответов: 26
Профиль | | #5
Добавлено: 25.03.06 17:36
Да это я и сам знаю, что панель задач можно убрать.
Мне нужно что бы было так как например в играх, во весь экран тоько моя программа, что бы не было видно виндовса вообще.
Номер ответа: 6
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #6
Добавлено: 25.03.06 17:48
Ну так убери, если знаешь.
И останется только окно твоей программы, больше ничего. Установи своё окно в Maximize и запрети ресайз окна.
Номер ответа: 7
Автор ответа:
DaaGER
ICQ: 329195567
Вопросов: 52
Ответов: 67
Web-сайт:
Профиль | | #7
Добавлено: 25.03.06 19:01
Пожалуй скажу вечную фразу: "На сайте есть код! Не ленись и поищи!"
А чтобы ты не мучился вот те код
'ВАРИАНТ1
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Const SM_CXSCREEN = 0
Const SM_CYSCREEN = 1
Const HWND_TOP = 0
Const SWP_SHOWWINDOW = &H40
Private Sub Command1_Click()
Dim ll_Width As Long
Dim ll_Height As Long
If Me.WindowState = vbMaximized Then
WindowState = vbNormal
End If
ll_Width = GetSystemMetrics(SM_CXSCREEN)
ll_Height = GetSystemMetrics(SM_CYSCREEN)
Call SetWindowPos(Me.hwnd, HWND_TOP, 0, 0, ll_Width, ll_Height, SWP_SHOWWINDOW)
End Sub
Private Sub Command2_Click()
WindowState = vbMaximized
End Sub
'ВАРИАНТ2
Но возможен и такой вариант: установите свойство формы BorderStyle как 0-None и вставьте следующий код
Private Sub Form_Load()
Me.Width = Screen.Width
Me.Height = Screen.Height
Me.Left = 0
Me.Top = 0
End Sub
Номер ответа: 8
Автор ответа:
Shovgenyuk
ICQ: 158931552
Вопросов: 18
Ответов: 26
Профиль | | #8
Добавлено: 25.03.06 20:00
Спасибо, но для MDI-формы оба варианты не работают
Номер ответа: 9
Автор ответа:
LamerOnLine
ICQ: 334781088
Вопросов: 108
Ответов: 2822
Профиль | | #9
Добавлено: 28.03.06 10:36
Попробуй через DirectX, полноэкранный режим )
Только вот при чем тут MDI...
Номер ответа: 10
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #10
Добавлено: 28.03.06 10:53
Для mdi всё прекрасно работает.
убираешь панель и делаешь mdiform.windowstate = 2
кроме mdi окна ничего на экране не видно
Номер ответа: 11
Автор ответа:
Shovgenyuk
ICQ: 158931552
Вопросов: 18
Ответов: 26
Профиль | | #11
Добавлено: 28.03.06 10:56
Можно поподробнее как это через DirectX?
Номер ответа: 12
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #12
Добавлено: 28.03.06 17:42
А так:
Private Declare Function SystemParametersInfo Lib _
"user32" Alias "SystemParametersInfoA" _
 ByVal uAction As Long, _
ByVal uParam As Long, _
ByRef lpvParam As Any, _
ByVal fuWinIni As Long) As Long
Private Const SPI_SCREENSAVERRUNNING = 97
Private Sub Form_Load()
Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, 0, 0)
Me.BorderStyle = 0
Me.WindowState = 2
End Sub
Номер ответа: 13
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #13
Добавлено: 28.03.06 20:30
Можешь вообще монитор программно выключить
Номер ответа: 14
Автор ответа:
Страшный Сон
Вопросов: 46
Ответов: 848
Профиль | | #14
Добавлено: 28.03.06 21:38
С обычной формой все просто:
.BorderStyle = 0
.WindowState = 2
Накроет весь экран, и панель задач уйдет. С MDI-формой это прокатит?
Номер ответа: 15
Автор ответа:
mc-black
ICQ: 308-534-060
Вопросов: 20
Ответов: 1860
Web-сайт:
Профиль | | #15
Добавлено: 28.03.06 22:22
Мы не ищем коротких путей
Private Const ABM_GETSTATE As Long = &H4
Private Const ABM_SETSTATE As Long = &HA
Private Const ABS_ALWAYSONTOP = &H2
Private Const SW_SHOWMAXIMIZED As Long = 3
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Type APPBARDATA
cbSize As Long
hwnd As Long
uCallbackMessage As Long
uEdge As Long
rc As RECT
lParam As Long ' message specific
End Type
Private Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As Long
Private Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Dim ABD As APPBARDATA
Dim OldValue As Long
Private Sub Form_Initialize()
OldValue = SHAppBarMessage(ABM_GETSTATE, ABD)
ABD.lParam = OldValue And Not ABS_ALWAYSONTOP
Call SHAppBarMessage(ABM_SETSTATE, ABD)
End Sub
Private Sub Form_Load()
Call ShowWindow(Me.hwnd, SW_SHOWMAXIMIZED)
End Sub
Private Sub Form_Unload(Cancel As Integer)
ABD.lParam = OldValue
Call SHAppBarMessage(ABM_SETSTATE, ABD)
End Sub
(с) mc-black