同机多屏显示??? ( 积分: 100 )

  • 主题发起人 主题发起人 qegdgh49410436
  • 开始时间 开始时间
Q

qegdgh49410436

Unregistered / Unconfirmed
GUEST, unregistred user!
请问大家:我们的管理系统要同一电脑上双(多)屏显示,主显示器显示前台营业部份,辅显示器显示
一个宣传画面之类的推广信息.但管理系统结帐时就需要给客人看结账部分的操作(辅显示器显示与
主显示器同步显示结帐部份的操作,结帐完成后辅显示器继续显示宣传画之类的东西);主显示器依然显示管理系统,各位有给些看法与说明吗,有代码演示更佳,谢谢各位高手了.(不知道我说清楚没有,如果没清楚我到解释,谢谢).
注:管理系统是用DELPHI开发的;
 
结账的时候有更新就Copy图像到其它显示屏就行了

procedure CopyToMonitors(Form: TCustomForm);
var
I: Integer;
Monitor: TMonitor;
DR, CR: TRect;
DC: HDC;
begin
{ 获取当前窗体所在显示屏 }
Monitor := Screen.MonitorFromWindow(Form.Handle);
{ copy整屏或窗体 }
CR := Monitor.WorkareaRect; //CR := Form.BoundsRect;
DC := GetDC(0);
{ 逐一copy至其他显示屏 }
for I := 0 to Screen.MonitorCount - 1 do
if I <> Monitor.MonitorNum then
begin
DR := Screen.Monitors.WorkareaRect;
StretchBlt(DC, DR.Left, DR.Top, DR.Right - DR.Left, DR.Bottom - DR.Top,
DC, CR.Left, CR.Top, CR.Right - CR.Left, CR.Bottom - CR.Top, SRCCOPY);
end;
ReleaseDC(0, DC);
end;

{ 测试 }
procedure TForm1.Button1Click(Sender: TObject);
begin
CopyToMonitors(Self);
end;
 
两个窗口就行了,一个窗口的坐标设在主显示器区域,一个窗口坐标设在辅助显示器区域
 
不能两个窗口:因为是一套管理软件;不可能因此而多做一个结帐窗口出来吧;而且也不能同步呀;(收银员不可以在同一时间对两个窗口进行相同操作吧)
 
一楼的兄弟;虽然能实现抓屏但鼠标机乎不能动;速度太慢了.期待高手出现;
 
一楼说的对.
 
现在好象火车站卖票的就是这样,你GOOGLE下,应该能找到答案!!
 
鼠标也要啊,显示属性里好象可以设置两个(以上)显示屏的相对显示模式的。
一般习惯用扩展,就是把桌面扩展,多个显示屏可以显示不同的内容;
也可以设为复制,那么其它显示器就是复制主显示器的内容(好象包括鼠标)。
先试试看,一般多显的话都应该有这个功能的。
看你用什么显卡了,要在程序中实现当然要获取其接口方法了。
结帐时改成复制模式,结帐完了改回扩展模式,不过模式转换过程可能要黑屏一下。
 
火车票? ..............
 
多人接受答案了。
 
后退
顶部