Окно на весь экран - как сделать в C++?

Средства разработки, технические вопросы, отвечает (по мере сил) Отдел Разработок
Закрыто
ASte
Студент (1 lvl)
Сообщения: 25
Зарегистрирован: Ср апр 12, 2006 00:48

Окно на весь экран - как сделать в C++?

Сообщение ASte » Чт дек 14, 2006 13:56

Как в С++ сделать окно открывающееся на весь экран КПК?
Нужно использовать для приложения всю площадь экрана 640x480..

sshd
Нобелевский лауреат (7 lvl)
Сообщения: 2159
Зарегистрирован: Вс мар 19, 2006 15:55

Сообщение sshd » Пт дек 15, 2006 01:48

если имеется в виду WM, то SHFullScreen и MoveWindow
Samsung GT-S8500 + MicroSD 8Gb

ElVovan
Студент (1 lvl)
Сообщения: 26
Зарегистрирован: Чт янв 04, 2007 11:11

Сообщение ElVovan » Сб янв 06, 2007 04:14

В обычной винде проще было... Можно было указать нули в качестве начальных координат при создании окна и результат функции GetSystemMetrics при задании размеров...
Можно подробнее про SHFullScreen? (мне эта тема тоже интересна)

sshd
Нобелевский лауреат (7 lvl)
Сообщения: 2159
Зарегистрирован: Вс мар 19, 2006 15:55

Сообщение sshd » Вс янв 07, 2007 04:51

ElVovan писал(а):Можно подробнее про SHFullScreen?
msdn
ElVovan писал(а):Можно было указать нули в качестве начальных координат при создании окна и результат функции GetSystemMetrics при задании размеров...
ну здесь тоже можно.
просто taskbar - он выше любого topmost окна, вот и заслоняет.
Samsung GT-S8500 + MicroSD 8Gb

mkol
Академик (6 lvl)
Сообщения: 1189
Зарегистрирован: Вс апр 11, 2004 12:14

Сообщение mkol » Пн янв 08, 2007 17:45

#include <aygshell.h>

LRESULT CALLBACK SHFullScreenWndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static fFullScreen = FALSE;
switch (message)
{
case WM_KEYDOWN:
{
// When the user presses the space key, toggle between full screen and normal mode.
if (VK_SPACE == wParam)
{
DWORD dwState;
RECT rc;
if (fFullScreen)
{
// To get into normal mode, first show all of the shell parts.
dwState = (SHFS_SHOWTASKBAR | SHFS_SHOWSTARTICON | SHFS_SHOWSIPBUTTON);
SHFullScreen(hwnd, dwState);
// Then resize the main window to be the size of the work area.
SystemParametersInfo(SPI_GETWORKAREA, 0, &rc, FALSE);
MoveWindow(hwnd, rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, TRUE);
fFullScreen = !fFullScreen;
}
else
{
// To get info full screen mode, first hide all of the shell parts.
dwState = (SHFS_HIDETASKBAR | SHFS_HIDESTARTICON | SHFS_HIDESIPBUTTON);
SHFullScreen(hwnd, dwState);
// Next resize the main window to be the size of the screen.
SetRect(&rc, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));
MoveWindow(hwnd, rc.left, rc.top, rc.right-rc.left, rc.bottom-rc.top, TRUE);
fFullScreen = !fFullScreen;
}
}
}
break;
}
return DefWindowProc(hwnd, message, wParam, lParam);
}

Закрыто

Вернуться в «Программирование для КПК»