请问:如何实现一个程序在俩个显示器上执行不一样的界面?当然,首先得硬件支持双屏幕。举个例子:比如我们在摄像头监控时,一个屏幕显示4个监控窗口,另外一个辅助屏幕监控另外4个窗口,或者可以放大8个摄像头的其中任何一个监控窗口?希望高手给些思路,后者demo程序,谢谢!!我的联系方式: [email protected]

解决方案 »

  1.   

    msdn 上面 关于 multi montior的部分
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/monitor_53sj.asp
      

  2.   

    可以参考win2000/nt的虚拟桌面技术
      

  3.   

    ZT:如果用来收费,应该是主显示器显示收费操作窗口,第二显示器显示给顾客看的缴费信息窗口。实现如下:
    1、开发时,将屏幕分辨率设为1024x768,在VB中,将主窗口和缴费
    窗口尺寸定义为800x600。
    2、将主窗口移到屏幕左上角(0,0),将缴费窗口拼在其右边,记下
    缴费窗口的属性Left的值xxxx.
    3、运行时,将两个屏幕分辨率定义为800x600,显示第二个窗口的
    代码如下:
    Form2.top=0:Form2.left=xxxx  ‘定义缴费窗口的显示位置可以试着把第二个窗口的top、left值设置为第二个显示器的位置
      

  4.   

    或者你可以使用Direct3D技术:IDirect3D9::CreateDevice
    HRESULT CreateDevice(
      UINT Adapter,
      D3DDEVTYPE DeviceType,
      HWND  hFocusWindow,
      DWORD BehaviorFlags,
      D3DPRESENT_PARAMETERS* pPresentationParameters,
      IDirect3DDevice8** ppReturnedDeviceInterface
    );
    //第一个参数可以指定使用的显示卡
      

  5.   

    Create 多个不同的窗口,每个窗口显示不同的东西部就可以了?
      

  6.   

    其实就楼主的目的来说,很简单
    首先显卡支持多头输出 ,可以同时连接两个显示器
    然后扩展桌面创建两个窗口,一个窗口专门用检视的
    另外一个窗口是根据需要来显示特定内容的创建第二个窗口后,用户把他托拽到第二个显示器上就是了上述操作都是系统自动支持的如果非要程序自动解决也没有什么,创建第二个窗口后,根据桌面扩展的内容,MoveWinodw把窗口移动过去就可以了和一个显示器显示两个内容没有多大的差异
      

  7.   

    其实就是,屏幕属性里设置为桌面拓展就完了,其中一个显示器是主显示器,其他的只不过是桌面的延伸,按显示器的排列方法,坐标累加就OK了。鼠标和键盘的输入不用担心,屏幕上只会有一个鼠标,只有一个窗口接受键盘输入,就和一台显示器的系统没有区别。区别就是,鼠标可以自由的显示器上移动。ps,如果显示器排列得不对,小心找不到鼠标~
      

  8.   

    楼上几位星星说得很有道理,不过这只是其中一种办法,
    有没有其他方法呢?另外,我这里对每个通道速度要求特别的严格,不是简单创建出窗口就可以。用到了DirectDraw技术,不知道怎么能够扩展到第二个显示器。正在试验中……谢谢各位的回答。需要解释的是,硬件确实已经支持多显,显卡自带多头
      

  9.   

    用了directdraw的时候有一定的区别
    创建设备的时候,指定的参数需要注意有个例子,
    http://www.gamedev.net/reference/articles/article1179.asp不同的显示器在ddraw当中是不同的设备,需要注意