多屏幕显示器编程( 四 )

原创 2001年08月21日 14:15:00
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.

Windows系统的多显示器模式的编程

这几天研究了一下Windows系统的多显示器模式的编程,实现了Windows下支持10显示器模式的通用com组件,这里做一个整理和回顾,希望能对再这方面开发的兄弟们有些启发和帮助:  (一) Wind...
  • Parfait
  • Parfait
  • 2007年06月27日 17:24
  • 4031

多屏幕显示器编程( 四 )

2001年08月21日 14:15:00 Programming for Multiple Monitors in Windows 98Other IssuesContinued from N...
  • softart
  • softart
  • 2007年10月27日 08:06
  • 371

[wy231的专栏]关于C#多屏幕显示器编程

 关于C#多屏幕显示器编程 document.title="关于C#多屏幕显示器编程 - "+document.title在窗口的中间有一个System.Windows.Forms.PictureBo...
  • MaybeHelios
  • MaybeHelios
  • 2006年05月18日 20:20
  • 1851

Delphi中开发使用多显示器的应用程序

Delphi中开发使用多显示器的应用程序
  • hncsl
  • hncsl
  • 2017年04月11日 16:44
  • 666

Windows 多显示器下的编程

概要 本文分步骤介绍如何在 Windows XP 中配置和使用多台监视器。Windows XP 可通过使用多台监视器扩大您的桌面,进而提高您的工作效率。一台计算机上可连接多达十台单独的监视器,借助于这...
  • FreeWave
  • FreeWave
  • 2008年01月10日 15:41
  • 8069

多屏幕显示器编程( 二 )

Programming for Multiple Monitors in Windows 98Installing Multiple MonitorsContinued from Introducti...
  • ghj1976
  • ghj1976
  • 2001年08月21日 14:11
  • 1552

多屏幕显示器编程( 一 )

2001年11月10日 13:33:00 Programming for Multiple Monitors in Windows 98How to use the new Win32 API fun...
  • softart
  • softart
  • 2007年10月27日 12:34
  • 164

多屏幕显示器编程( 七 )

Programming for Multiple Monitors in Windows 98Figure 3: Cache the Work AreaContinued from Figure 2:...
  • ghj1976
  • ghj1976
  • 2001年08月21日 14:21
  • 2160

多屏幕显示器编程( 一 )

Programming for Multiple Monitors in Windows 98How to use the new Win32 API functions that enable yo...
  • ghj1976
  • ghj1976
  • 2001年11月10日 13:33
  • 2061

多屏幕显示器编程( 三 )

2001年08月21日 14:12:00 Programming for Multiple Monitors in Windows 98New Multiple-Monitor Win32 A...
  • softart
  • softart
  • 2007年10月27日 08:06
  • 264
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:多屏幕显示器编程( 四 )
举报原因:
原因补充:

(最多只允许输入30个字)