INDEX
CCRP FAQ Index |
hWnd property exposed
by CCRP controls
25th February 1998
The CCRP Team
Copyright © 1998-2004 Common Controls Replacement Project
All CCRP controls expose a hWnd
property. However, care must be taken when using this property.
Firstly, never save the contents of the hWnd property to a variable. Due to limitations in
comctl32.dll, certain styles can only be applied on some controls when the control is
created. (This destroy/recreation can be observed in the standard VB design environment,
for example, by those controls that set design-time only properties, such as the listbox
sorted style). To work around this limitation, the CCRP controls may also destroy and
recreate the control in order to change a style (just as VB does in the design
environment). For this reason, the the CCRP hWnd property may change during the runtime of
the control.
Secondly, the hWnd property returns the hWnd of the common control, not the usercontrol on
which it is sited. This causes problems when using calls such as SetParent. One user was
attempting to use this to move and align a progress bar into a status bar panel. Whilst
the SetParent call works without a problem, subsequent calling of the move method of the
control has no effect and the result is that the progress bar appears permanently in the
upper-left hand corner of the status bar. If you wish to do this, you will need to use the
MoveWindow or a similar API call to move the window. Alternatively, you can use SetParent
on the UserControl (and the child common control). To retrieve the hWnd of the UserControl
given the hWnd of the common control you will need to call GetParent. This will return the
hWnd of the UserControl and you can then use SetParent on this handle. You can then use
the Move method of the CCRP controls to position the control.
The hWnd property is provided for you to use but we will not support its use in the same
way that we support the rest of the properties in the controls. If you use it and it goes
wrong, it is your problem - feel free to contact the author and ask if they can see
anything obvious that could be causing problems, but it remains up to the author whether
or not to investigate the problem further.
|