分辨率问题--初学者提问。请好心人帮忙。

jzzlpat 2004-08-26 04:12:21
我做的无边窗口。。在800*600下是全屏的。

在1024*768下,就只能看到一半了。

请大家帮我好吗?

分不够可以加。

我的QQ:5797726 可以加我。

谢谢大家。谢谢。
...全文
122 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
renjunjun 2004-09-03
  • 打赏
  • 举报
回复
NO,NO,应该把代码放在Form_Resize事件中
xanger 2004-09-03
  • 打赏
  • 举报
回复
在开发的时候先在640*480的分辨率下排版。
第一次听说
不过听起来还真是个好办法呢:D
yelang771 2004-09-03
  • 打赏
  • 举报
回复
mark
starsoulxp 2004-09-03
  • 打赏
  • 举报
回复
在开发的时候先在640*480的分辨率下排版。
在FORM_LOAD中判断显示器的分辨率,当显示器的分辨率大于640*480的时候,将界面上每一个对象的位置和大小都乘上一个比例系数,字体也适当加上几号就可以了。
我以前就是这样做的,这样作的好处在于占用的资源很小,程序也非常简单。
还有一些方法,比如使用RESIZE控件,或者针对不同分辨率事先做几套界面等等,楼主都可以试试,不过我觉得实用性不大
jzzlpat 2004-08-30
  • 打赏
  • 举报
回复
呵呵。我做个无边框窗口。。

在1024*768下是全屏。在800*600就是一半了。

另半看不到。

留下您的联系方式好吗??这里说不明白的。。。
zhysecond 2004-08-26
  • 打赏
  • 举报
回复
你在VB属性窗口中直接修改窗口的属性:windowsstate=2-maximized就可了。
ShaLongBus 2004-08-26
  • 打赏
  • 举报
回复
在Form_Load中加上如下语句:
Me.WindowState = 2
啊呀 2004-08-26
  • 打赏
  • 举报
回复
form.windowstate
jackyhyoung 2004-08-26
  • 打赏
  • 举报
回复
以下代碼你可以用來動態的改變屏幕的分辨率
Private Declare Function lstrcpy _

Lib "kernel32" Alias "lstrcpyA" _
(lpString1 As Any, lpString2 As Any) _
As Long
Const CCHDEVICENAME = 32
Const CCHFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer

dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Private Declare Function _
ChangeDisplaySettings Lib _
"User32" Alias "ChangeDisplaySettingsA" ( _

ByVal lpDevMode As Long, _
ByVal dwflags As Long) As Long
'- 滲杅
Public Function SetDisplayMode(Width As _
Integer,Height As Integer, Color As _
Integer) As Long
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const DM_BITSPERPEL = &H40000
Dim NewDevMode As DEVMODE
Dim pDevmode As Long
With NewDevMode
.dmSize = 122
If Color = -1 Then
.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
Else
.dmFields = DM_PELSWIDTH Or _
DM_PELSHEIGHT Or DM_BITSPERPEL

End If
.dmPelsWidth = Width
.dmPelsHeight = Height

If Color <> -1 Then
.dmBitsPerPel = Color
End If
End With
pDevmode = lstrcpy(NewDevMode, NewDevMode)
SetDisplayMode = ChangeDisplaySettings(pDevmode, 0)
End Function
具體運用,想要屏幕為640*480*16
Private Sub cmdChange_Click()
i = SetDisplayMode(640, 480, 16)
End Sub
DieGhost 2004-08-26
  • 打赏
  • 举报
回复
直接改成最大化嘛
studyczb 2004-08-26
  • 打赏
  • 举报
回复
哈哈,你试一下将窗体动态化!
lovebeethoven 2004-08-26
  • 打赏
  • 举报
回复
你是希望他都是全屏的马?
sangshuyezi 2004-08-26
  • 打赏
  • 举报
回复
在800*600下是全屏,到了1024*768下却只能看到一半,奇怪!
好象反了吧。

1,488

社区成员

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

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