我写的卡拉OK视频点播系统家庭版,支持双显示器(或一显示器一电视)分屏显示(0分)

  • 主题发起人 主题发起人 jpfree
  • 开始时间 开始时间
J

jpfree

Unregistered / Unconfirmed
GUEST, unregistred user!
下载地址:http://www.19190.com/jpfree/
 
你是怎样实现双显示器功能的?
 
404,找不到网页?!
 
没有呀,打开呢,
楼主,留个邮箱,
什么时候回到此贴,mail我
Netsofte_mail@163.com
呵呵~~~~~~~~~~~~~
 
没有想还有人能找出此贴,真是意外。不过我现在也早已写出来了,呵呵!不但支持双屏
还支持单屏呢!
 
3cs兄,可以给一份我吗?如果能给源程序我看看就更感激不尽了[:D]
email:ufleet@163.com
 
To 3cs
老兄,能mail我不???????我是技术狂,什么都想知道???可是什么都不知道。先谢了!!!!!!
我也没有看贴出的时间,发现有源码就看咯,
哪知打不开,晕~~~~~~~~~~~
妹妹:Netsofte_mail@163.com
 
是要什么源码呀? ~~ 是双屏显示的源码,还是要点播系统的源码呀!这些可是要MONEY的
呀,呵呵!
 
这是在VB下可以实现多屏显示,各位睇下吧![:D]
[8D]Windows 98/2000下多屏显示技术的实现

(刘 涛)


  前言

  一般情况下,计算机用户都是使用单一的显示屏来观察显示的信息,目前比较流行的是17英寸的显示器,可以满足一般用户的需求。但是在一些特殊的场合下,例如需要对现场进行大范围的监控、CAD绘图、或应用电子地图技术等的情况下,需要全景显示时,用户就不得不要求计算机有足够大的显示桌面,以便对场景的细节看的更清楚、操作起来更方便。针对上述情况,即使是二十九寸的显示器其有效的显示尺寸也是十分有限的,这时候解决桌面大小问题就不得不采用多屏显示技术,Windows操作系统支持这种技术,这里的多屏显示并不是指采用多屏分配器驱动多个显示器,从而使多个屏幕显示相同的画面,就如同VC界面编程中的动态拆分效果,而是指在一台计算机上安装多个显卡带多台显示器,实现成倍的扩展计算机桌面尺寸的目的。例如台湾Dream公司推出的ViewPacket软件,可以一边显示视频流,一边编辑Word文档,一边上网浏览网络上的信息,极大的方便了用户的使用。
  一、多屏显示的系统配置方法

  为了安装多显示器,首先检查机器硬件,当前Windows操作系统只支持PCI适配器来实现多显示器桌面,它要求显卡必须使用以下芯片组中的一种:ATI Mach64、S3 764和764+、Cirrushgic5436、5446和7458、Imagine 128 Series1和2、S3 Virge或ET6000、M9711等。一般情况下,一个显卡驱动一个显示器,一台机器最多可以驱动7台显示器,其中一台为主显示器,其余为副显示器。主显示器也是Windows启动画面出现的那个显示器。

  进入"控制面板"-"显示",双击"显示",弹出"显示属性"对话框,选中"设置",如果安装了多个监视器,这时候对话框的上半部分显示系统中目前显示器的数量。可右键单击一个监视器图标,再单击"标识"查看对应于单击其图标的监视器的显示编号。请将它们拖动到代表在监视器间移动项目方式的位置。例如,如果您正使用两个监视器,并希望通过左右拖动来将项目从一个监视器中移到另一个中,请将图标并排排列。要通过上下拖动来在监视器间移动项目,请将图标上下排列。图标的位置并不一定与监视器的物理位置相对应。您可以将图标上下放置,即使监视器是并排放置的。

  二、多屏显示的软件实现

  通过上面的设置,虽然使Windows支持多显示器扩展桌面的功能,但也仅仅是实现了设备的连接与管理,一般Windows应用程序的窗口不能自动运行到副显示器上,用户只能通过鼠标拖动来将程序的窗口扩展到副显示器上,如果需要将程序窗口自动扩展到不同的显示器显示,必须采用相应的多屏显示编程技术。在这种技术中,可以使用Windows的User32.DLL动态连接库提供的API函数SetWindowPos()(如果采用VC这个开发平台,CWnd类提供了一个同样的成员函数),它的功能是更改窗口的大小、位置及窗口的顺序,因此可以用来在多显示器桌面上实现应用程序窗体的定位显示。下面对这个函数进行详细的解释:


BOOL SetWindowPos(
HWND hWnd, // 窗口的句柄;
HWND hWndInsertAfter, // 窗口次序句柄,
int X, // 窗口左上角的水平位置;
int Y, // 窗口左上角的垂直位置;
int cx, // 窗口的宽度;
int cy, // 窗口的高度;
UINT uFlags file://标志位;
);


  这里需要解释的有hWndInsertAfter、uFlags两个参数

  hWndInsertAfter

  在窗口的"Z"序中排在需要的设置的窗口之前的窗口句柄;这个参数取以下值:


Value Meaning
HWND_BOTTOM 将要操作的窗口放置在所有窗口之下;
HWND_NOTOPMOST 将要操作的窗口放置在"non-topmost"窗口之下;
HWND_TOP 将操作的窗口放置在所有的窗口之上;
HWND_TOPMOST 将要操作的窗口放置在"non-topmost"窗口之上;

  uFlags

  规定窗口的尺寸和位置的标志,这个参数通常取以下值:


Value Meaning
SWP_DRAWFRAME 窗口重画时,绘制出窗口类中所描述的窗口的框架
SWP_HIDEWINDOW 隐藏窗口;
SWP_NOACTIVATE 窗口无任何动作;
SWP_NOMOVE
保持窗口的当前位置;
SWP_NOREDRAW 在新位置并不重画窗口;
SWP_NOSIZE 改变窗口的位置,并不改变窗口的大小,既忽略cx,cy两个参数的值;
SWP_NOZORDER 窗口重画时,保留当前的顺序,既忽略hWndInsertAfter参数的值
SWP_SHOWWINDOW Displays the window.

  另,该参数还可以取其它的值,具体含义读者可以参考MSDN。

  为了说明问题,下面的VB代码仅仅实现了在两个显示器分别显示不同的窗口,用户点击按钮后,主显示器显示窗口Form1,副显示器显示窗口Form2,感兴趣的读者可以稍加修改,就可以应用到实际项目开发中去。

  首先在VB全局模块中声明:


Public Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

  其次在需要定位的两个窗口模块中调用该函数。具体的VB代码是:


Private Sub Form1_Load( )
Const HWND_TOPMOST=-1
Const SWP_NOACTIVATE=&H10
SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, ScreenWidht/2, ScreenHeight, SWP_NOACTIVATE '在主显示器的显示区域上显示窗口1;


End Sub
Private Sub Form2_Load( )
Const HWND_TOPMOST=-1
Const SWP_NOACTIVATE=&H10
SetWindowPos Me.hWnd, HWND_TOPMOST, ScreenWidht/2, 0, ScreenWidht/2, ScreenHeight, SWP_NOACTIVATE '在副显示器的显示区域上显示窗口2;

End Sub
为了正确的显示,需要将窗体的ScaleMode属性设置为twips,这样才可以与Windows系统中ScreenWidth和ScreenHeight的计量单位twips保持一致。
代码:
 
打不开呀~

找不到网页
您要查看的网页可能已被删除、名称已被更改,或者暂时不可用。

--------------------------------------------------------------------------------

请尝试以下操作:

如果您已经在地址栏中输入该网页的地址,请确认其拼写正确。

打开 www.19190.com 主页,然后查找指向您感兴趣信息的链接。
单击后退按钮,尝试其他链接。
单击搜索,寻找 Internet 上的信息。



HTTP 404 - 未找到文件
Internet Explorer
 
To daver
老兄,不会吧是这样吧!!!用SetWindowPos来实现呀~~~~~为什么会是这样呢,我看了那个VB的代码是分屏吧(我以前专用VB的)???
To 3cs
老兄,不要你的代码,大概说一下原理,用到了什么函数的也行!!!!!!!!我不信多屏就是SetWindowPos,是指这类的呢-------------------“指在一台计算机上安装多个显卡带多台显示器,实现成倍的扩展计算机桌面尺寸的目的。”-----------------我要的是这样的方法,还望老兄赐教哦~~~~~~

呵呵~~~~~~~~~~~~~~~`
 
daver完全对!!!!!!!!!!!!!!!!!!!!!我的系统也是这种方法做的.
 
to Netsoft
用SetWindowPos就是在一台计算机上安装多个显卡带多台显示器,实现成倍的扩展计算机桌面尺寸的,这就可以实现多屏分屏显示了,如主显示器显示卡拉OK点播系统的主界面,富显示器显示播放的影片。如果你的富显示器有视频输出的,接上电视机就可实现点歌系统了.........哪你就试下吧!
 
是的,带TV输出的显卡根本不需要程序控制,你接上就可以输出视频,所要做的只是控制声道转换,这种软件没什么技术含量!所要做的不过是将画面漂亮一些!
 
声道问题有没有解决??现在好多的系统在这个问题上处理不行,伴音时能两个音箱都能输出,原唱时也能是立体输出吗?
 
后退
顶部