VB6: ComboBox con "Separador" de texto

Iniciado por ProgramadorVB, 22 Agosto 2010, 21:11 PM

0 Miembros y 4 Visitantes están viendo este tema.

ProgramadorVB

Hola amigos,

Muy buenos días, espero que esten bien...
Necesito la ayuda para crear en VB6 un combo box con "separador" de texto, no seleccionable...
¿Que es esto?

Sería algo como lo siguiente:

-comidas-
pizza
pollo
choripan
-bebidas-
agua
cerveza
gaseosa
vino

Donde "-comidas-" y "-bebidas-" sí se puede ver, pero no es seleccionable... (esto sirve, obviamente, como separador de items)

El asunto que estoy buscando en Internet, pero no encuentro como hacer esto en VB6... aunque sí se puede hacer en VB.NET... pero no me sirve...
También se puede hacer eso mismo en HTML... pero tampoco sirve... ya que esto es VB6...

Alguien sabe cómo hacer eso??

Espero que me puedan ayudar ya que aparte, es interesante para cualquier aplicación...
Es más... seguramente alguien ya lo haya implementado o visto alguna vez...


Desde ya muchas gracias,
Un Saludo

BlackZeroX

.
Una solucion sencilla es que les pongas un tag a los nodos seleccionables y a los que no los dejas tal cual (Sin tocarlos) y al momento del clic Cancelarlo (Dejando el click en el Nodo Madre es decir el que tiene el Tag con algo)

Seria algo asi

Desde el Item donde se dio un clic ir en reversa buscando el item que tiene tag (este seria el Nodo seleccionable!¡.)

Me parece que de igual forma se puede hacer con SendMessage, pero ignoro el como!¡.

Dulces Lunas!¡.
The Dark Shadow is my passion.

LeandroA

hola, es un verdadero quilombo hacer eso, mas aun si lo queres hacer desde el el combobox de vb tenes que hookear la aplicación esperando que se cree la ventana "ComboLBox" para poder cambiar su estilo a LBS_OWNERDRAWFIXED despues subclasificar esa ventana y redibujar el control y elminar algunos mensajes, mas facil es crear directamente el control con CreateWindowEx  y hacer el subclasificado.
de todas formas es algo muy abanzado si es que no tienes los conocimientos necesarios.

no se que tantas necesidad tengas de hacer eso o cual es la situación,  pero creo que tenes opciones mas sencillas como por ejemplo crear un formulario con algunos labels o utilizar un menu. o un treeview. un poco de imaginación

Saludos.

ProgramadorVB

#3
Hola Leandro,

Gracias por tu mensaje, tomo tu palabra, porque sé que la tenes más clara que yo en estos temas, años luz... voy a buscar alternativas a esta forma de presentar y desplegar las opciones que necesito...

gracias!!

Un saludo
ProgramadorVB (Hugo)

Petro_Boca

#4
o sino usa "Frame"  ;)

Ejemplo:



El frame es lo que dice "Sumar Los Datos"..

Osea, Ese "Cuadrado" Que Contiene Cosas :3

Petro_Boca


Psyke1

No hace falta ser un genio para saer que lo que dices pedro_boca no tiene nada que ver con lo que pide...

Pd: Eres el rey del doble post... :¬¬

DoEvents¡! :P

Petro_Boca

Cita de: *PsYkE1* en 23 Agosto 2010, 01:03 AM
No hace falta ser un genio para saer que lo que dices pedro_boca no tiene nada que ver con lo que pide...



ajjaja , pero igual le sirve XD

porq no pone un combo box(o lo que quiera) adentro del frame ¬¬

Cita de: *PsYkE1* en 23 Agosto 2010, 01:03 AM


Pd: Eres el rey del doble post... :¬¬



;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D ;D

ProgramadorVB

Hola,

Gracias por los comentarios... pero quiero seguir en el tema principal... el tema del combobox...

Alguien más sabe como hacer eso que pido??

Desde ya gracias!!!

rob1104

#9
Cita de: ProgramadorVB en 23 Agosto 2010, 03:27 AM
Hola,

Gracias por los comentarios... pero quiero seguir en el tema principal... el tema del combobox...

Alguien más sabe como hacer eso que pido??

Desde ya gracias!!!
No probaste lo que mencionó BlackZeroX??? seria mas o menos asi:

Código (vb) [Seleccionar]
Private Sub Combo1_Click()
   If InStr(Combo1.Text, "----") Then
       Dim i As Integer
       For i = 1 To Combo1.ListCount
           If Not InStr(Combo1.List(i), "----") Then
               Combo1.Text = Combo1.List(i)
               Exit Sub
           End If
       Next
   End If
End Sub

Private Sub Form_Load()
   Combo1.AddItem ("----comidas----")
   Combo1.AddItem ("pizza")
   Combo1.AddItem ("pollo")
   Combo1.AddItem ("choripan")
   Combo1.AddItem ("----bebidas----")
   Combo1.AddItem ("agua")
   Combo1.AddItem ("cerveza")
   Combo1.AddItem ("gaseosa")
   Combo1.AddItem ("vino")
End Sub
Estudialo y adaptalo a tu caso.

Saludos
Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.