My FAQ,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Visual C++ > 其他处理
多屏幕显示器编程(四)
作者:ghj1976 时间:2001-10-15 10:19 出处:互联网 责编:MyFAQ
              摘要:多屏幕显示器编程(四)
Programming for Multiple Monitors in Windows 98
Other Issues

Continued from New Multiple-Monitor Win32 API functions

If you use these new API functions to make your applications multiple monitor-friendly, what will happen on systems running a version of Windows that does not have the multimonitor functions? (Neither Windows 95 nor Windows NT 4.0 includes the multiple-monitor APIs.) They will crash, unless you do something about it. The solution is a new header file, Multimon.h, which uses GetProcAddress to determine whether the relevant functions are actually in the system DLLs. If they are not, it supplies default implementations of these functions. This header file actually contains source code, and if the COMPILE_MULTIMON_STUBS flag is set, the code will be compiled. This means that you should define COMPILE_MULTIMON_STUBS in one--and only one--source file that includes Multimon.h. You can include Multimon.h in as many source files as you want, but make sure that COMPILE_MULTIMON_STUBS is defined in only one. The end result of this process is a single executable file that will run on all versions of Win32.

There are also a few new rules you should follow if you want your programs to behave correctly on a multiple-monitor system. Remember that negative desktop coordinates are now valid, so don't assume otherwise. For example, don't hide your application by moving its window to a negative position. You should also take care when centering dialogs on a monitor. If you don't check which monitor your application is on, you may be centering your dialog on the wrong monitor.

Another potential pitfall is the incorrect casting of window message parameters that are window coordinates. Since negative coordinates used to be invalid, it didn't matter if you accidentally cast an integer position value to a DWORD.

If you follow sound coding practices in general, you should find that your application will require very little work to become multiple monitor-friendly. When Windows 98 is finally released, multiple-monitor systems will probably become fairly common. If you want to make your programs as high in quality as possible, or if you target a market where multiple monitors will be prevalent, add some multiple-monitor situations to your test plans.

Microsoft has done quite a good job of incorporating multiple-monitor support into an OS that wasn't designed for it. But applications written before multiple-monitor support was available may behave unreliably, especially when displayed on a monitor other than the primary monitor. My own experience has shown that while such problems can be frustrating, they can be worked out. Once you have adapted to the multi-monitor quirks of your applications, it's hard to go back to the confines of a single monitor. If you have an old 14-inch monitor sitting around, you may find it worthwhile to buy a cheap PCI video card and set up a second display.

Next: Figure 1: The Display Properties Control Panel

Published as Power Programming in the 4/7/98 issue of PC Magazine.

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有