Độ phân giải của màn hình ??

Liên hệ QC

Mr Okebab

Ngon Ngất Ngây
Thành viên đã mất
Tham gia
6/8/06
Bài viết
3,260
Được thích
3,787
Khi tạo ra các Form rất có thể các Form sẽ lớn hơn màn hình khi độ phân giải thay đổi.
Vậy thì làm cách nào các Form luôn ở trong màn hình nhỉ ??? (Dĩ nhiên các thành phần trong Form không bị che khuất đi)
Có lệnh nào trả về độ phân giải của màn hình hiện tại không ???

Các cao thủ giúp nhé.

Thân!
 
trong VB có cách đó MrOkeBab, chứ VBA hình như không:
Trong VB6 kích thước form và các object có thể định và tính bằng 1 đơn vị tính nào đó mình quên tên, nhưng hệ đơn vị này tỳ lệ với kích thước màn hình (screen) không lệ thuộc độ phân giải. Đại khái người ta chia độ rộng screen (không phải độ rộng theo độ phân giải) ra làm 1 số phần bằng nhau, rồi lấy làm đơn vị đo.
Bab thử tạo form trong VB6 rồi import file frm vào Excel xem. Mình chưa thử.
 
Upvote 0
Mr Okebab đã viết:
Khi tạo ra các Form rất có thể các Form sẽ lớn hơn màn hình khi độ phân giải thay đổi.
Vậy thì làm cách nào các Form luôn ở trong màn hình nhỉ ??? (Dĩ nhiên các thành phần trong Form không bị che khuất đi)
Có lệnh nào trả về độ phân giải của màn hình hiện tại không ???

Các cao thủ giúp nhé.

Thân!
Chào Hiếu
Tất nhiên là được Hiếu à. Hiếu dùng thử mấy dòng code này xem.
Mã:
Declare Function GetSystemMetrics16 Lib "user" _
    Alias "GetSystemMetrics" (ByVal nIndex As Integer) As Integer
Declare Function GetSystemMetrics32 Lib "user32" _
    Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long

Public Const XScreen = 0
Public Const YScreen = 1

'Xác định kích thước cửa sổ
Sub ShowAppSize()
    Application.WindowState = xlMaximized
    FWidth = Application.Width
    FHeight = Application.Height
    MsgBox "Man hinh hien tai : " & FWidth & " X " & FHeight
End Sub

'Xem độ phân giải
Sub DisplayVideoInfo()
    If Left(Application.Version, 1) = 5 Then
        Width_ = GetSystemMetrics16(XScreen)
        Height_ = GetSystemMetrics16(YScreen)
    Else
        Width_ = GetSystemMetrics32(XScreen)
        Height_ = GetSystemMetrics32(YScreen)
    End If
    MsgBox "Do phan giai hien tai : " & Width_ & " X " & Height_
End Sub
Mình không nhớ chắc lắm nhưng hình như codes này mình xem từ XL-Logic.com thì phải
Thân
TDN
 
Upvote 0
Solution:

- Design form với Width = 9600, Height = 7200 (fullscreen cho độ phân giải 800x640)
- Viết code hoặc dùng các controls về Resize form (tự viết, kiếm bản free hoặc mua)

Hope that helps!
 
Upvote 0
Vâng cảm ơn các bác, cuối cùng nhờ các bác em cũng làm được rồi.
PHP:
Option Explicit
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long

Function PhanGiaiMH() As String
    On Error Resume Next
    Const SM_CXSCREEN = 0        ' Width of screen
    Const SM_CYSCREEN = 1        ' Height of screen
    Dim Rong As Long, Dai As Long
    Rong = GetSystemMetrics(SM_CYSCREEN) ' Lay Chieu rong
    Dai = GetSystemMetrics(SM_CXSCREEN) ' ' Lay Chieu rong
    PhanGiaiMH = Dai & "by" & Rong
End Function

Sau đó dựa vào độ phân giải để Resize lại Form.

Cảm ơn các bác nhiều.

Thân!
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom