#1 Greno
Takhle nějak zjistíš zda je okno maximalizované včetně na kterém je monitoru:
BOOL CALLBACK MonitorEnumProc(HMONITOR hmonitor, HDC hdc_monitor, LPRECT lprc, LPARAM param)
{
wchar_t text[255];
static size_t index = 1;
MONITORINFOEX mi;
ZeroMemory(&mi, sizeof(mi));
mi.cbSize = sizeof(mi);
if (!GetMonitorInfo(hmonitor, &mi))
return TRUE;
if (MonitorFromWindow((HWND)param, MONITOR_DEFAULTTONEAREST) == hmonitor)
{
StringCbPrintf(text, sizeof(text), L"Notepad na monitoru č. %d\n", index);
if ((mi.dwFlags & MONITORINFOF_PRIMARY) != 0)
StringCbCat(text, sizeof(text), L"Tento monitor je primární\n");
WINDOWPLACEMENT wp;
ZeroMemory(&wp, sizeof(wp));
wp.length = sizeof(wp);
if (GetWindowPlacement((HWND)param, &wp))
{
if (wp.showCmd == SW_MAXIMIZE)
StringCbCat(text, sizeof(text), L"Notepad je maximalizován\n");
}
wprintf(text);
}
index++;
return TRUE;
}
int _tmain(int argc, _TCHAR* argv[])
{
_wsetlocale(LC_ALL, L"Czech");
HWND hwnd = FindWindow(L"notepad", NULL);
if (hwnd == NULL)
{
wprintf(L"Notepad nenalezen\n");
getchar();
return 0;
}
if (!EnumDisplayMonitors(NULL, NULL, MonitorEnumProc, (LPARAM)hwnd))
{
wprintf(L"Chyba EnumDisplayMonitors\n");
getchar();
return 0;
}
getchar();
return 0;
}
Radek Chalupa
- vývoj software na zakázku
- školení programování (C/C++, WinAPI, ATL, COM, ActiveX, C#, NET Framework, MFC)
http://www.radekchalupa.cz