如何使用vb5.0编写程序切换显示器的分辨率
编号:QA001607
建立日期: 1999年8月27日 最后修改日期:2000年12月18日
所属类别:
冯晖:
vb5.0
windows95
我想使用vb5.0编写一个这样的程序,该程序不带窗体,运行后可直接将显示器的分辨率由640*480改为800*600,或者由800*600改为640*480。应该怎么做?期待您的回答,谢谢!
回答:
关键是使用API函数ChangeDisplaySettings,这里有一个例子
changedesktopmode.zip。如果你不想要窗体,可以在工程中加一个模块(.bas),在其中加上Sub Main,在这个过程中调用ChangeDisplaySettings函数。然后修改工程属性,设置程序从Sub Main开始启动,而不是从窗体启动。
阿冬问:
操作系统: Win98
编程工具: VB6
问题: 用ChangeDisplaySettings(AAA, 0)可正常改变屏幕分辨率由800*600到1024*768,可改回时却不见了98的任务栏。 当把颜色改过为256色之后哪怕改回用screen.width 或 GetDeviceCaps函数都经常不能得到正确的宽度,而高度却正常,同时鼠标的API: SetCursorPos和clipCursor所指定的座标也全错了。
回答:
只需简单的改变一个参数:将ChangeDisplaySettings(lpDevMode,0)改为 ChangeDisplaySettings(lpDevMode,1)即可。也许是前者改变了分辨率,但没有向所有其他应用发送消息吧。
阿武
操作系统: win98
编程工具: VB6
问题: 在您的网站中我学到了不少知识,谢谢您办了如此好的一个网站。但最近遇到两个问题,希望能得到您的帮助:我用VB写的程序没有任何窗体,所以:
1.我无法自定程序的图标。
2.我没有窗体设备的句柄,因此无法使用API来改变屏幕的分辩率。
虽然我可以在工程中加入一个窗体,然后将其隐藏起来后可以解决以上问题,但我总觉得这不是一个好程序应使用的方法,请问能不能有更好的解决办法?请指教!!
水平: 中级
答:没有窗口也不要紧,你可以调用API函数GetDC(GetDesktopWindow())来获得桌面窗口的DC,然后在调用其他相关函数。至于第一个问题,比较讨厌,看来你只能加入一个窗体,但是仍然从Sub Main开始启动。
此问题由李海回答。
| |
|
|
| |
|
|