Unicode Controls & Classes for VB6 - Version 4

ctlUniListBoxExXP Control

Unicode Listbox with optionally images and checkbox style
Check common properties here

Name Description
eOwnerDrawState [OwnerDrawState] constants
eUniListBoxEx_MultiSelect Multi selection constants
Name Description
MouseWheel Raised when the mouse wheel scrolls
IMEComposition Raised when the user confirms a string in the IME editor, check here for details
OnOwnerDraw Raised when an item is about to be drawn/measured. Change properties of this event for translating items
at runtime or assign icons to items. This event is called the first time for measuring the item
then every time the item needs to be refreshed
Name Type Description
AllowImages (Boolean) Allow images to be displayed (use the [OnOwnerDraw] event and the [ListTag] property to save pictures)
BackColor (OLE_COLOR) Gets or sets the Background color of the control
BackColorOut (OLE_COLOR) Gets or sets the Color of the area out of the border (when using Rounded Borders in a non WindowLess control)
Leave -1& for automatic management
BorderColor (OLE_COLOR) Gets or sets the Border color
Enabled (Boolean) Enables or disables the control
Font (Font) Gets or sets the font used for text in the control, check the [ApplyFontChanges] for details
ForeColor (OLE_COLOR) Gets or sets the text color
HScroll (Boolean) Gets or sets the ability to use a horizontal scrollbar on the popup list
IconDim (Integer) Gets or sets the default size of item images
ItemData (Long) Gets or sets the [ListTag] but limited to be a number
List (String) Gets or Sets the item at a certain index
ListCount (Long) Returns the number of items in the list
ListIndex (Long) Gets or sets the current element
ListTag (Variant) Gets or sets the Tag associated with a certain list item
ManualStart (Boolean) Permits you to activate the control Manually when you incorporate this control into a your custom usercontrol
In order to start the control check the [ExternalInitControl] function
MouseIcon (Picture) Gets or sets the MouseIcon for the control
MousePointer (VBRUN.MousePointerConstants) Gets or sets the MousePointer for the control
MultiSelect (eUniListBoxEx_MultiSelect) Gets or sets the type of multi selection to use
OLEDropMode (eCtlOLEDropMode) Gets or sets the OleDropMode for the control
OwnerDrawState (eOwnerDrawState) Gets the OwnerDraw status, by checking this flag you can load items (icons or images) only when needed
RightToLeft (Boolean) Gets or sets the ability to show bidirectional text on the control
RoundedBorders (Boolean) Gets or sets Rounded borders
RoundSelector (Boolean) Gets or sets the ability to use rounded borders for the list item selector
ScrollOnMouseWheel (Boolean) Gets or sets the ability to capture the mouse wheel and scroll the view
SelBackColor (OLE_COLOR) Gets or sets the background color of the list item selector
Selected (Boolean) Gets or sets the selection state of a certain item
SelectorStyle (eCtlButtonStyle) Gets or sets the style of the list selector
SelForeColor (OLE_COLOR) Gets or sets the foreground color of the list item selector
Sorted (Boolean) Gets or sets the ability to sort items alphabetically
Style (eUniListBox_Style) Gets or sets the list style
Tip (String) Gets or sets the Unicode Tooltip for the control
TrapTabKey (Boolean) Gets or sets the ability for the control to catch Tab keys
UseRoundRegions (Boolean) Gets or sets the ability to use Round Regions for round borders instead of using the [BackColorOut] property;
Name Type Description
AddItem (Long) Adds a new item to the listbox, return the index
ApplyFontChanges When setting a new font on the control you need to call this function in order to refresh the interface
BeginUpdate Permits you to start a long-time update on the control (for example by adding 1000 elements) without sending out many and many events. So it is faster!
Use un conjunction with [EndUpdate]
Clear Clears the list combo
EndUpdate Terminates a [BeginUpdate] reactivating the control after a long-time update
ExternalInitControl Some controls contained into this package may have bad iterations when used into Usercontrols.
This because VB6 cannot detect, in some cases, that the usercontrol is in Design or User mode so the control may appear running at design time (so you cannot move it in many cases).

Controls that may have problems are: ctlUniTextBoxXP, ctlUniRichTextBoxXP, ctlUniListBoxXP, ctlUniListBoxExXP, ctlUniComboBoxXP

Check this function for a solution sample
GetListIndexByY (Long) Returns the list index using the given coordinate
hWnd (Long) Retuns the handle associated with the control
IsInIME (Boolean) You can use this property for knowing if the KeyPress, KeyDown and KeyUp events have been raised by the active IME window associated to your control.
IsStarted (Boolean) Returns True if the control has been initialized and started (contains a valid handle)
newIndex (Long) Returns the index of the latest item added
OLEDrag Starts an OLEDrag operation
RemoveItem Removes the item at a certain position
SelCount (Long) Returns the number of selected items
Text (String) Returns the text on the current item
How to use the control:
Simply manage the OnOwnerDraw event and set images to items when needed.