У меня есть довольно стандартная программа на C ++, в которой я создаю полноэкранное окно (с двумя дочерними окнами). На моем компьютере разработчика с Windows 10 это окно заполняет весь экран и закрывает панель задач.
В Windows 7 он не закрывает панель задач. После некоторых экспериментов кажется, что если я выключу Aero, программа закроет панель задач!
Я также создал быстрое приложение C # / WPF, и это приложение может закрывать панель задач независимо от состояния Aero.
Мне не хватает оконного сообщения или опции создания для окна?
Вот код, который позиционирует и создает окно
// Get a handle to the primary monitor, which by definition has its top
// left corner at (0, 0).
const POINT ptZero = { 0, 0 };
HMONITOR hmon = MonitorFromPoint(ptZero, MONITOR_DEFAULTTOPRIMARY);
MONITORINFO mi = { sizeof(mi) };
GetMonitorInfo(hmon, &mi);
// Fill the entire screen
layout->left = mi.rcMonitor.left;
layout->right = mi.rcMonitor.right;
layout->top = mi.rcMonitor.top;
layout->bottom = mi.rcMonitor.bottom;
// Create a full screen window
m_hwnd = CreateWindowEx(
WS_EX_TOPMOST,
className,
windowName,
WS_POPUP | WS_VISIBLE,
layout.left,
layout.top,
layout.right - layout.left,
layout.bottom - layout.top,
NULL,
NULL,
GetModuleHandle(NULL),
this); // LPARAM is used in WM_CREATE to associate the class instance with the Window
Вот код, который обрабатывает сообщения окна
switch (uMsg)
{
case WM_PAINT:
OnPaint(hwnd); // Draws a black background
return DefWindowProc(hwnd, uMsg, wParam, lParam);
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
Обновление: после некоторого поиска в Google я обнаружил, что эта проблема также может быть связана с DPI: http://forums.pcsx2.net/Thread-Fullscreen-Windows-7-Taskbar-does-not-auto-hide-w-aero https://productforums.google.com/forum/#!topic/chrome/5dMYLChXeWk
Что работает, а что не работает в данный момент:
Areo + DPI @ 150%: панель задач не закрыта Нет области + DPI @! 150%: панель задач закрыта Areo + DPI @ 100%: панель задач закрыта Нет области + DPI @ 100%: панель задач закрыта
Это меня сильно сбило с толку ...
WS_MAXIMIZE
? И, возможно,WS_EX_TOPMOST
тоже поможет. - person Simon Kraemer   schedule 04.02.2016WS_EX_TOPMOST
(правда, в этом нет необходимости). Я тоже попробуюWS_MAXIMIZE
. - person Roy T.   schedule 04.02.2016