¿É ÒÔ Ê¹ ÓÃ CB_SETDROPPEDWIDTHÏû Ï¢ ¡£ ÏÂ Ãæ ÊÇ Ò» ¸ö Àý ×Ó £º 
    Public Sub SetComboWidth(cboIn As ComboBox) 
    ' Resize the with of the dropdown portion of a combobox to accomodate the longest item 
     
     Dim nCount As Long 
     Dim nNumChars As Long 
     Dim nLongestComboItem As Long 
     Dim nNewDropDownWidth As Long 
     Dim nOldScaleMode As Integer 
     Dim nLongestComboItemIndex As Integer 
     Dim oOldFont As Font 
     
     ' Loop through the cboIn entries, to determine the longest item 
     For nCount = 0 To cboIn.ListCount - 1 
     nNumChars = SendMessage(cboIn.hwnd, CB_GETLBTEXTLEN, nCount, CLng(0)) 
     If nNumChars > nLongestComboItem Then 
     nLongestComboItem = nNumChars 
     nLongestComboItemIndex = nCount 
     End If 
     Next 
     
     ' Save the parent's font and scale mode 
     nOldScaleMode = cboIn.Parent.ScaleMode 
     Set oOldFont = cboIn.Parent.Font 
     
     cboIn.Parent.ScaleMode = vbPixels 
     Set cboIn.Parent.Font = cboIn.Font 
     
     ' Get Width of longest item in pixels 
     nNewDropDownWidth = cboIn.Parent.TextWidth(cboIn.List(nLongestComboItemIndex)) 
     cboIn.Parent.ScaleMode = nOldScaleMode 
     Set cboIn.Parent.Font = oOldFont 
     
     ' Add width of vertical scrollbar 
     If cboIn.ListCount > 8 Then 
     nNewDropDownWidth = nNewDropDownWidth + GetSystemMetrics(SM_CYVSCROLL) + 7 
     Else 
     nNewDropDownWidth = nNewDropDownWidth + 7 
     End If 
     ' Resize the dropdown portion of the cboIn box 
     SendMessage cboIn.hwnd, CB_SETDROPPEDWIDTH, nNewDropDownWidth, CLng(0) 
    End Sub 
<END>
