Programación General > Visual Basic 6.0 e inferiores

 justificar un listbox

(1/1)

master33:
tengo varios listbox los cuales son cargados con numeros y lo que necesito es justificarlos a la derecha lo que no he podido hacer

ArKaNtOs:
Pues la verdad no hay manera pero te podria servir agregarle espacios o tabuladores al texto algo asi

For i = 0 To List1.ListCount - 1
    List1.List(i) = vbTab & vbTab & List1.List(i) 'o tambien List1.List(i) = "         " & List1.List(i)
Next

master33:
me ayudo bastante tu idea  gracias

seba123neo:
Hola, proba este ejemplo, es algo extenso para lo que queres, pero es lo mejor...


--- Código: Visual Basic ---Option Explicit Private Const LB_SETTABSTOPS As Long = &H192Private Const WM_GETFONT = &H31 Private Type RECT   Left As Long   Top As Long   Right As Long   Bottom As LongEnd Type Private Type SIZE   cx As Long   cy As LongEnd Type Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As LongPrivate Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)Private Declare Function GetDialogBaseUnits Lib "user32" () As LongPrivate Declare Function GetTextExtentPoint32 Lib "gdi32" Alias "GetTextExtentPoint32A" (ByVal hDC As Long, ByVal lpString As String, ByVal cbString As Long, lpSize As SIZE) As LongPrivate Declare Function GetDC Lib "user32" (ByVal hWnd As Long) As LongPrivate Declare Function ReleaseDC Lib "user32" (ByVal hWnd As Long, ByVal hDC As Long) As LongPrivate Declare Function SelectObject Lib "gdi32" (ByVal hDC As Long, ByVal hObject As Long) As LongPrivate Declare Function GetClientRect Lib "user32" (ByVal hWnd As Long, lpRect As RECT) As Long   Private Sub Form_Load()   List1.AddItem vbTab & "123"End Sub Private Sub Command1_Click()   Dim hwndLB As Long   Dim rc As RECT   ReDim tabarray(0 To 0) As Long   hwndLB = List1.hWnd   Call GetClientRect(hwndLB, rc)   tabarray(0) = -((rc.Right - rc.Left) / CalcPixelsPerDlgUnit(hwndLB))   Call SendMessage(List1.hWnd, LB_SETTABSTOPS, 0&, ByVal 0&)   Call SendMessage(List1.hWnd, LB_SETTABSTOPS, 1&, tabarray(0))   List1.RefreshEnd Sub Private Function CalcPixelsPerDlgUnit(hwndLB As Long) As Single   Dim hFont As Long   Dim hFontOld As Long   Dim hDC As Long   Dim sz As SIZE   Dim cxAvLBChar As Long   Dim cxDlgBase As Long   Const sChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"    hDC = GetDC(hwndLB)     If hDC Then      hFont = SendMessage(hwndLB, WM_GETFONT, 0, ByVal 0&)      hFontOld = SelectObject(hDC, hFont)      If GetTextExtentPoint32(hDC, sChars, Len(sChars), sz) Then        cxAvLBChar = sz.cx / Len(sChars)        cxDlgBase = GetDialogBaseUnits And &HFFFF&        CalcPixelsPerDlgUnit = (2 * cxAvLBChar) / cxDlgBase      End If          Call SelectObject(hDC, hFontOld)      Call ReleaseDC(hwndLB, hDC)  End IfEnd Function  
saludos.

Navegación

[0] Índice de Mensajes

Ir a la versión completa