Atlanta Custom Software Development 

 
   Search        Code/Page
 

User Login
Email

Password

 

Forgot the Password?
Services
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
Programming
  Database
Automation
OS/Networking
Graphics
Links
Tools
» Regular Expr Tester
» Free Tools

DuplicateComboBox - Fast copy of the contents of a ComboBox control

Total Hit ( 3149)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article

Rating


 


Click here to copy the following block
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal _
  hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
  lParam As Any) As Long
Private Declare Function LockWindowUpdate Lib "user32" (ByVal hwndLock As Long) _
  As Long
 
Const CB_RESETCONTENT = &H14B
Const CB_GETCOUNT = &H146
Const CB_GETITEMDATA = &H150
Const CB_SETITEMDATA = &H151
Const CB_GETLBTEXT = &H148
Const CB_ADDSTRING = &H143

' Duplicate the contents of a ComboBox control to another ComboBox control
'
' Pass False to the last argument to append contents
' (the target control isn't cleared before adding elements)
'
' uses API functions for the fastest code

Sub DuplicateComboBox(Source As ComboBox, Target As ComboBox, _
  Optional AppendMode As Boolean)
  Dim index As Long
  Dim itmData As Long
  Dim numItems As Long
  Dim sItemText As String
  
  ' prepare the receiving buffer
  sItemText = Space$(512)
  
  ' temporarily prevent updating
  LockWindowUpdate Target.hWnd
  
  ' reset target contents, if not in append mode
  If Not AppendMode Then
    SendMessage Target.hWnd, CB_RESETCONTENT, 0, ByVal 0&
  End If
  
  ' get the number of items in the source control
  numItems = SendMessage(Source.hWnd, CB_GETCOUNT, 0&, ByVal 0&)
  
  For index = 0 To numItems - 1
    ' get the item text
    SendMessage Source.hWnd, CB_GETLBTEXT, index, ByVal sItemText
    ' get the item data
    itmData = SendMessage(Source.hWnd, CB_GETITEMDATA, index, ByVal 0&)
    ' add the item text to the target list
    SendMessage Target.hWnd, CB_ADDSTRING, 0&, ByVal sItemText
    ' add the item data to the target list
    SendMessage Target.hWnd, CB_SETITEMDATA, index, ByVal itmData
  Next
  
  ' allow redrawing
  LockWindowUpdate 0
  
End Sub


Submitted By : Nayan Patel  (Member Since : 5/26/2004 12:23:06 PM)

Job Description : He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting.
View all (893) submissions by this author  (Birth Date : 7/14/1981 )


Home   |  Comment   |  Contact Us   |  Privacy Policy   |  Terms & Conditions   |  BlogsZappySys

© 2008 BinaryWorld LLC. All rights reserved.