Also, there's still something wrong here. Ted, you say this is your SetWindowSubclass declaration ...

Code:

Private Declare Function SetWindowSubclass Lib "comctl32.dll" (ByVal hwnd As Long, ByVal pfnSubclass As Long, ByVal uIdSubclass As Long, ByVal dwRefData As Long) As Long
... and that this is your call to it ...

Code:

SetWindowSubclass Me.hwnd, AddressOf SubClassProc, ID
The way you've got it set up, I don't know how you're even getting it compiled. Your SetWindowSubclass declaration has four arguments, and your call only has three. Also, I wasn't aware that the SetWindowSubclass and related API calls had a non-numeric exposed entry-point. Maybe they do on newer versions of the comctl32.dll, not sure.

Also, it sure looks like LaVolpe is onto something as well.

Good Luck,
Elroy