Autor Tema: Mostrar ToolTipText en item seleccionado de un Datacombo  (Leído 2768 veces)

0 Usuarios y 1 Visitante están viendo este tema.

zxs23

  • Megabyte
  • ***
  • Mensajes: 146
  • Reputación: +5/-2
    • Ver Perfil
Mostrar ToolTipText en item seleccionado de un Datacombo
« en: Diciembre 06, 2012, 10:31:05 pm »
Hola a todos, tengo algunos items del datacombo que sobrepasan el ancho del control y quisiera ponerle un ToolTipText a todos los items como podria hacerlo, bueno y tambien como hacerlo en un combo normal.

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Mostrar ToolTipText en item seleccionado de un Datacombo
« Respuesta #1 en: Diciembre 06, 2012, 11:17:30 pm »
por lo que se, para hacer eso tenes que ya entrar a subclasificar el control combo lo cual es un lio si no sabes como es. aca te dejo un proyecto para bajar con clases en C++que usan las apis para hacer eso.

ComboBox with Item Tooltips

capas te convendria alguna otra solucion o usar el ucCombobox de Leandro, pero creo que tampoco tiene tooltips por item, aunque seria capas menos trabajo agregarlo ya que esta creado de 0 con apis.

saludos.

zxs23

  • Megabyte
  • ***
  • Mensajes: 146
  • Reputación: +5/-2
    • Ver Perfil
Re:Mostrar ToolTipText en item seleccionado de un Datacombo
« Respuesta #2 en: Diciembre 07, 2012, 12:14:38 am »
Hola bueno creo que va ser un poco dificil hacerlo con mi nivel actual creo que por ese lado no puedo hacer nada y no creo que valga la pena tanto esfuerzo.
Estoy intentando agrandar el with del control cuando le pongo el foco y volverlo a la normalidad cuando clickeo o pierdo el foco pero no me queda nada bueno, haber si me hechan una mano con esto porque ya tire la toalla despues de jugar con los eventos(Si es que se puede caso contrario pues ni modo).

SALUDOS

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Mostrar ToolTipText en item seleccionado de un Datacombo
« Respuesta #3 en: Diciembre 07, 2012, 07:26:06 am »
Hola con un combo normal es mas fácil ajustar el ancho pero bueno no es el caso, te tiro esta función, que creo que te puede safar, es para agrandar el ancho de la lista, pero tenes que llamarla en los enventos MouseUp y KeyUp

Código: (Vb) [Seleccionar]
Option Explicit

Private Declare Function MoveWindow Lib "user32.dll" (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
Private Declare Function GetWindowRect Lib "user32.dll" (ByVal hwnd As Long, ByRef lpRect As RECT) As Long
Private Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Type RECT
    Left As Long
    Top As Long
    Right As Long
    Bottom As Long
End Type

Private Function SetDataComboListWidth(ByVal NewWidth As Long)
    Dim hwnd As Long
    Dim Rec As RECT
    hwnd = FindWindow("DataComboListWndClass", vbNullString)
    If hwnd <> 0 Then
        GetWindowRect hwnd, Rec
        If NewWidth < Rec.Right - Rec.Left Then NewWidth = Rec.Right - Rec.Left
        MoveWindow hwnd, Rec.Left, Rec.Top, NewWidth, Rec.Bottom - Rec.Top, 1
    End If
End Function

Private Sub DataCombo1_KeyUp(KeyCode As Integer, Shift As Integer)
    If KeyCode = vbKeyF4 Then
        SetDataComboListWidth 500
    End If
End Sub

Private Sub DataCombo1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
    SetDataComboListWidth 500
End Sub