在OnInitDialog函数中添加:
EnumDisplayMonitors(NULL, NULL, MonitorEnumProc, NULL);
MonitorEnumProc函数:
CArray <MONITORINFO, MONITORINFO&>g_arMonitorInfo;
BOOL CALLBACK MonitorEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData)
{
MONITORINFO monitorInfo = { 0 };
monitorInfo.cbSize = sizeof(MONITORINFO);
BOOL bRet = GetMonitorInfo(hMonitor, &monitorInfo);
g_arMonitorInfo.Add(monitorInfo);
return TRUE;
}
屏幕信息加载到了g_arMonitorInfo数组中。
双击标题栏,窗口最大化:
if (point.y <= 32)
{
CPoint ptScreen = point;
ClientToScreen(&ptScreen);
int i, nSize = (int)g_arMonitorInfo.GetSize();
for (i = 0; i < nSize; i++)
{
CRect rtMonitor = g_arMonitorInfo[i].rcMonitor;
if (rtMonitor.PtInRect(ptScreen))
{
MoveWindow(rtMonitor, TRUE);
}
}
}