HPC.ru lite - Все форумы
Форум: Программирование для КПК
Тема: Окно на весь экран - как сделать в C++?
[Ответить]
ASte [14.12.2006 13:56] Окно на весь экран - как сделать в C++?:
Как в С++ сделать окно открывающееся на весь экран КПК?
Нужно использовать для приложения всю площадь экрана 640x480..
sshd [15.12.2006 01:48] :
если имеется в виду WM, то SHFullScreen и MoveWindow
ElVovan [06.01.2007 04:14] :
В обычной винде проще было... Можно было указать нули в качестве начальных координат при создании окна и результат функции GetSystemMetrics при задании размеров...
Можно подробнее про SHFullScreen? (мне эта тема тоже интересна)
sshd [07.01.2007 04:51] :
ElVovan писал(а):
Можно подробнее про SHFullScreen?
msdn
ElVovan писал(а):
Можно было указать нули в качестве начальных координат при создании окна и результат функции GetSystemMetrics при задании размеров...
ну здесь тоже можно.
просто taskbar - он выше любого topmost окна, вот и заслоняет.
mkol [08.01.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);
}
[Ответить]