dcsimg
Login | Register   
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.


Tip of the Day
Language: Visual Basic
Expertise: Advanced
Aug 5, 1997

WEBINAR:

On-Demand

Application Security Testing: An Integral Part of DevOps


Resize the Drop-Down List Area of Combo Boxes

VB doesn't provide a ListRows property, so if you need to display more than eight default items in a combo box drop-down list, use this procedure to increase the size of the combo box window:
 
Option Explicit

Type POINTAPI
        x As Long
        y As Long
End Type

Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

Declare Function MoveWindow Lib _
        "user32" (ByVal hwnd As Long, _
        ByVal x As Long, ByVal y As Long, _
        ByVal nWidth As Long, _
        ByVal nHeight As Long, _
        ByVal bRepaint As Long) As Long
Declare Function GetWindowRect Lib _
        "user32" (ByVal hwnd As Long, _
        lpRect As RECT) As Long
Declare Function ScreenToClient Lib _
        "user32" (ByVal hwnd As Long, _
        lpPoint As POINTAPI) As Long

Public Sub Size_Combo(rForm As Form, _
        rCbo As ComboBox)
        Dim pt As POINTAPI
        Dim rec As RECT
        Dim iItemWidth As Integer
        Dim iItemHeight As Integer
        Dim iOldScaleMode As Integer

        'Change the Scale Mode on the form 
        'to Pixels
        iOldScaleMode = rForm.ScaleMode
        rForm.ScaleMode = 3
        iItemWidth = rCbo.Width

        'Set the new height of the combo box
        iItemHeight = rForm.ScaleHeight - _
                rCbo.Top - 5
        rForm.ScaleMode = iOldScaleMode

        'Get the coordinates relative to the 
        'screen
        Call GetWindowRect(rCbo.hwnd, rec)
        pt.x = rec.Left
        pt.y = rec.Top

        'then the coordinates relative to 
        'the form.
        Call ScreenToClient(rForm.hwnd, pt)

        'Resize the combo box
        Call MoveWindow(rCbo.hwnd, pt.x, _
                pt.y, iItemWidth, iItemHeight, 1)
End Sub
Keith Meulemans
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date