这个... 恐怕要用到显卡的SDK了 我很菜的,不会... Waiting for 高手 's answer...
处理 WM_PAINT 消息时,主要用到EnumDisplayMonitors,在获得 HDC 时分别获得取得各个显示器的 HDC,然后 Render 就可Painting on a DC That Spans Multiple Displays To respond to a WM_PAINT message, use code like the following.case WM_PAINT: hdc = BeginPaint(hwnd, &ps); EnumDisplayMonitors(hdc, NULL, MyPaintEnumProc, 0); EndPaint(hwnd, &ps);
To paint the top half of a window, use code like the following.GetClient Rect(hwnd, &rc); rc.bottom = (rc.bottom - rc.top) / 2; hdc = GetDC(hwnd); EnumDisplayMonitors(hdc, &rc, MyPaintEnumProc, 0); ReleaseDC(hwnd, hdc);To paint the entire virtual screen optimally for each monitor, use code like the following.hdc = GetDC(NULL); EnumDisplayMonitors(hdc, NULL, MyPaintScreenEnumProc, 0); ReleaseDC(NULL, hdc);
怎么我加进multimon.h 和 winuser.h后, 老是说_unresovled extern symbol xEnumDispalyMonitor 呢?
然后将窗口MoveWindow到其中任何一个屏
恐怕要用到显卡的SDK了
我很菜的,不会...
Waiting for 高手 's answer...
To respond to a WM_PAINT message, use code like the following.case WM_PAINT:
hdc = BeginPaint(hwnd, &ps);
EnumDisplayMonitors(hdc, NULL, MyPaintEnumProc, 0);
EndPaint(hwnd, &ps);
To paint the top half of a window, use code like the following.GetClient Rect(hwnd, &rc);
rc.bottom = (rc.bottom - rc.top) / 2;
hdc = GetDC(hwnd);
EnumDisplayMonitors(hdc, &rc, MyPaintEnumProc, 0);
ReleaseDC(hwnd, hdc);To paint the entire virtual screen optimally for each monitor, use code like the following.hdc = GetDC(NULL);
EnumDisplayMonitors(hdc, NULL, MyPaintScreenEnumProc, 0);
ReleaseDC(NULL, hdc);
根本就不用两个显卡,现在一般的显卡都带两到三种接口,一个模拟接口,一个数字接口(显示器要支持),还有一个电视接口,用这种显卡就可以接多个显示器了(前提是你的显示器分别支持这几种接口)。
然后就可以设置分屏显示了,要移动窗口直接MoveWindow就行了。