VB 6 - Incluindo um CheckBox em uma Combobox


Os controles Combobox e Listbox não consomem muito recursos do sistema , são fáceis de usar e possuem uma variedade de uso nos mais diversos projetos , por isto mesmo , são uma espécie de marca registrada dos componentes visuais padrão do Visual Basic.

Vou mostrar como incluir um checkbox em um combobox.

No projeto eu vou estar usando o nome padrão para os controles ( command1 , chekbox1 , combo1 , etc...).

Obs: Eu estou testando este exemplo no Visual Basic 6.0 com service pack 5.

Incluindo um controle checkbox em um controle Combobox

Public Const EC_LEFTMARGIN = &H1
Public Const EC_RIGHTMARGIN = &H2
Public Const EC_USEFONTINFO = &HFFFF&
Public Const EM_SETMARGINS = &HD3&
Public Const EM_GETMARGINS = &HD4&

Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
(ByVal hwndParent As Long, ByVal hwndChildAfter As Long, ByVal lpszClass As String, _
ByVal lpszWindow As String) As Long

Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Sub IncluiCheckNoCombo(ByRef chk As CheckBox, ByRef cbo As ComboBox)
Dim lhWnd As Long
Dim lMargem As Long

lhWnd = FindWindowEx(cbo.hwnd, 0, "EDIT", vbNullString)

If (lhWnd <> 0) Then
   lMargem = chk.Width \ Screen.TwipsPerPixelX + 2
   SendMessageLong lhWnd, EM_SETMARGINS, EC_LEFTMARGIN, lMargem
   chk.BackColor = cbo.BackColor
   chk.Move cbo.Left + 3 * Screen.TwipsPerPixelX, cbo.Top + 2 * Screen.TwipsPerPixelY,
chk.Width, cbo.Height - 4 * Screen.TwipsPerPixelY
   chk.ZOrder
End If

End Sub
Private Sub Command1_Click()
   IncluiCheckNoCombo Check1, Combo1
End Sub
Private Sub Form_Load()
   Combo1.AddItem "janeiro"
   Combo1.AddItem "fevereiro"
   Combo1.AddItem "março"
   Combo1.AddItem "abril"
   Combo1.ListIndex = 0
End Sub

Vamos testar : Rode o projeto e a princípio você vai obter a tela da figura 1.

Agora clique no botão de comando e ... Shazam !!! a tela da figura 2 mostra o checkbox inserido na combo.

figura 1 - A tela inicial do projeto figura 2 - O CheckBox incluido na combo

Aguarde mais dicas sobre Combobox...

Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti