16,472
社区成员
发帖
与我相关
我的任务
分享
BOOL CALLBACK MonitorEnumProc( HMONITOR hMonitor, // handle to display monitor
HDC hdcMonitor, // handle to monitor DC
LPRECT lprcMonitor, // monitor intersection rectangle
LPARAM dwData // data
)
{
CSDINoDVFrame* pWnd = reinterpret_cast<CSDINoDVFrame*>(dwData);
CRect rcWnd;
pWnd->GetWindowRect( &rcWnd );
if ( !rcWnd.IntersectRect( &rcWnd, lprcMonitor ) )
{
pWnd->MoveWindow( lprcMonitor );
return FALSE;
}
return TRUE;
}
void CSDINoDVFrame::OnChangemonitor()
{
// TODO: 在此添加命令处理程序代码
EnumDisplayMonitors( NULL, NULL, MonitorEnumProc, (LPARAM)this );
}
因为简单,没考虑最大化、不改变大小等情况,自己可以加上。