通过这一段时间的资料查找,和实际编程,得到点启发,总结一下关于多显示器输出的问题。:
多重独立显示(Multiple independent displays)这种模式,只要不是刀架到脖子上了,最好不要采用。
先说说这种模式的限制
1 win98以上的系统(应该没人用win95吧)需要至少2块独立的显卡。一卡多头是不可以的。这一点微软就没说清楚。
2 gdi+,openGL不支持。
3 重起后模式可能会被改为桌面扩展。
我只有一块显卡,所以CreateDC()失败,这种方式就没有再试验。
可以看看,前人和微软工程师的讨论。
这种方式用不了只好改用桌面扩展(Large desktops) 模式模拟。
我的项目只有两个显示器,在副显示器上显示程序中得到的图像数据。
1 建立一个非模态的对话框,把所有附加的东西去掉,模式改为child。这样程序运行的时候,将对话框铺满整个副显示器,底色改为白色(这个根据个人需要),形成一个大的画布。
2 初始程序的时候 建立副显示器的DC,可以用CreateDC(),之后再需要的时候就可以将图像画到副显示器上。
3 关闭主程序,对话框也会销毁,副显示器恢复原来的桌面。
不足之处 :虽然可以限制鼠标不进入副显示器,但拖动的窗口无法限制。主程序最小化时,副窗口中的对话框也会最小化。
编码可参考,DC的创建,