<<<I would need to change the 2nd line for use in 24 bit mode to clear the high
byte
>>>
You mean "clear the high bit". You shouldn't clear the whole byte. Probably
wouldn't matter, though.
If your control has been drawn at least once, you should also be able to get
the size by checking the cntrlRect field of the control record.
Otherwise, your approach seems sound. You might want to lock the controlDef
code while you make the calcCntlRgn call.
-Peter