求救?同一操作系统,在不同分辨率的显示器上显示!

ovine 2010-12-10 05:10:46
本人欲在不同分辨率的两个显示器上(一个VGA,一个TV)显示同一界面内容?不知如何用软件实现?
整体压缩速度太慢。界面上有鼠标的操作,由于两个界面比例不是整数,在根据内容压缩时,鼠标移动时,总是会出现鼠标遗漏的斑斑点点。还请各位赐教!!!!!!
...全文
142 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
目前英伟达(nVidia)内核的显卡,提供有4中模式,单VGA、单TV、桌面复制、桌面扩展

对于前3种模式,你的问题没有意义。
对于桌面扩展模式,如果在9L所说,你的问题同样没有意义。
(至于在这种模式下可在不同的显示器绘制不同的内容,无非是计算位置罢了,
这种模式下桌面宽度是2倍的,主显示器屏幕的左上点是零点,副显示器屏幕的
左上点可为dx或-dx(dx为单显示器分辨率)
  • 打赏
  • 举报
回复
问题是你的“多显示器”是如何部署的,VGA+TV的话,应该是
显卡将同一个显示结果分法到两个视频输出接口吧,程序直接
操作的是显卡而不是显示器是吧:)
ovine 2010-12-13
  • 打赏
  • 举报
回复
需要说明的两个不同分辨率的显示器同时显示同一内容!!!
ovine 2010-12-13
  • 打赏
  • 举报
回复
静态的可以这样做,不知道显示的鼠标可以这样做吗?两个显示器对应的鼠标位置可能是不同区域吗?
reggiekiller 2010-12-11
  • 打赏
  • 举报
回复
整个屏幕也是一个窗口,有没有对应自适应的函数呢
向立天 2010-12-11
  • 打赏
  • 举报
回复
你就是想实现控件适配吧
看看这个会不会对你有帮助
http://blog.csdn.net/xianglitian/archive/2010/06/12/5667015.aspx
vcf_reader 2010-12-11
  • 打赏
  • 举报
回复
有两种办法:
1.计算屏幕的大小,确定自己显示的比例。这个方法在参考书上看到过。程序代码比较长。
2.用资源替换的方法。这个方法是万能的。就是把不同的资源(尺寸大小也是资源)放在一个DLL里面,具体到程序加载的时候根据屏幕的分辨率大小调用不同的资源。这个比较好理解。
Sou2012 2010-12-11
  • 打赏
  • 举报
回复
参考一下这个吧。。

Creating a DPI-Aware Application
http://msdn.microsoft.com/en-us/library/ms701681%28v=vs.85%29.aspx
yihandrensunyong 2010-12-10
  • 打赏
  • 举报
回复
//做一个自适应屏幕分辨率的窗口,当成一个应用程序中所有窗体的基类。
//这样整个程序可以很好的适应屏幕分辨率的改变。
//实现的原理很简单,就是在窗口打开的时候去RESIZE窗口和窗口中的控件大小
//函数写好以后,在窗体的OPEN事件里调用该函数即可

environment env
integer ii_ScreenWidth,ii_ScreenHeight
double WRadio,HRadio,Radio
integer ii_WinBolderWidth,ii_WinBolderHeight
getenvironment(env)
ii_WinBolderWidth=this.width - this.WorkSpaceWidth()//取得窗体的边框宽度
ii_WinBolderHeight=this.height - this.WorkSpaceHeight()
ii_ScreenWidth=env.screenwidth
ii_ScreenHeight=env.screenheight
//compute the radio that need be resize

WRadio=ii_ScreenWidth/800 //标准认为屏幕分辨率为800*600
HRadio=ii_ScreenHeight/600//计算出屏幕相对800*600分辨率的变化量
Radio=Min(WRadio,HRadio)

if Radio=1.0 then //if the screen is default 800*600
return 0
end if
this.hide()
this.width=(this.width - ii_WinBolderWidth)*Radio + ii_WinBolderWidth
this.height=(this.height - ii_WinBolderHeight)*Radio + ii_WinBolderHeight
integer i
dragobject temp//用于取各种控件

for i=1 to upperbound(this.control)
temp=this.control[i]//调整大小,位置
temp.width=temp.width*Radio
temp.x=temp.x*Radio
temp.y=temp.y*Radio
temp.Height=temp.Height*Radio
choose case typeof(temp)
case tab!
tab mtab
mtab=temp
mtab.textsize = mtab.textsize*Radio//设置字体
case commandbutton!
commandbutton cb
cb = temp
cb.textsize = cb.textsize*Radio

case singlelineedit!
singlelineedit sle
sle = temp
sle.textsize=sle.textsize*Radio
case editmask!
editmask em
em = temp
em.textsize = em.textsize*Radio

case statictext!
statictext st
st = temp
st.textsize = st.textsize*Radio

case datawindow! // datawindows get zoomed
datawindow dw
dw = temp
dw.Object.DataWindow.zoom = string(int(Radio*100))//注意DATAWINDOW与其它控件的不同

case picturebutton!
picturebutton pb
pb = temp
pb.textsize = pb.textsize*Radio

case checkbox!
checkbox cbx
cbx = temp
cbx.textsize = cbx.textsize*Radio

case dropdownlistbox!
dropdownlistbox ddlb
ddlb = temp
ddlb.textsize = ddlb.textsize*Radio

case groupbox!
groupbox gb
gb = temp
gb.textsize = gb.textsize*Radio

case listbox!
listbox lb
lb = temp
lb.textsize = lb.textsize*Radio

case multilineedit!
multilineedit mle
mle = temp
mle.textsize = mle.textsize*Radio

case radiobutton!
radiobutton rb
rb = temp
rb.textsize = rb.textsize*Radio

end choose
next
this.show()
return 0
  • 打赏
  • 举报
回复
汗……这个应该是显卡驱动层的处理,LZ想在应用层来做狠有点难度的说

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧