多显示器(Multiple Display Monitors)编程-关于多重独立显示(Multiple independent displays)和桌面扩展(Large desktops)

本文探讨了多显示器编程中的两种模式——多重独立显示和桌面扩展。多重独立显示受到限制,如需两块独立显卡且不支持GDI+和OpenGL。而桌面扩展则允许在副显示器上创建非模态对话框作为画布。文章提供了编程实现的思路,并分享了相关资源链接,帮助理解多显示器支持的基本原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 


通过这一段时间的资料查找,和实际编程,得到点启发,总结一下关于多显示器输出的问题。:

多重独立Multiple independent displays这种模式,只要不是刀架到脖子上了,最好不要采用。


先说说这种模式的限制

1 win98以上的系统(应该没人用win95)需要至少2块独立的显卡。一卡多头是不可以的。这一点微软就没说清楚。

2 gdi+openGL不支持。

3 重起后模式可能会被改为桌面扩展。


我只有一块显卡,所以CreateDC()失败,这种方式就没有再试验。

可以看看,前人和微软工程师的讨论。

http://groups.google.com.au/group/microsoft.public.win32.programmer.kernel/browse_frm/thread/575f1452aacd4c8b/7b084cd3e8558f38?lnk=st&q=nvidia+createdc+%22%5C%5C.%5CDISPLAY1%22&rnum=1#7b084cd3e8558f38

这种方式用不了只好改用桌面扩展(Large desktops模式模拟。


我的项目只有两个显示器,在副显示器上显示程序中得到的图像数据。

1 建立一个非模态的对话框,把所有附加的东西去掉,模式改为child。这样程序运行的时候,将对话框铺满整个副显示器,底色改为白色(这个根据个人需要),形成一个大的画布。

2 初始程序的时候 建立副显示器的DC,可以用CreateDC(),之后再需要的时候就可以将图像画到副显示器上。

3 关闭主程序,对话框也会销毁,副显示器恢复原来的桌面。

不足之处 :虽然可以限制鼠标不进入副显示器,但拖动的窗口无法限制。主程序最小化时,副窗口中的对话框也会最小化。

 

编码可参考,DC的创建,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值