I’m trying to center the text in a edit control vertically, after some research I found I have to process the WM_NCCALCSIZE message.
So i’ve subclassed my edit control, but the WM_NCCALCSIZE message is never sent.
Am I doing something wrong?
EDIT:
So i’m processing the WM_NCCALCSIZE message fine, and I have a 3d border created by passing WS_EX_CLIENTEDGE to CreateWindowEx.
But if I disable windows themes by killing the theme service, the border goes away on the control thats processing the WM_NCCALCSIZE message.
Another control that doesnt process the WM_NCCALCSIZE message still has the border like normal.
So i’m assuming I’m supposed to be doing somethign in WM_NCCALCSIZE that allows me to keep the border? If so what? if not any way to get the border back?
Figured it out,
WM_NCCALCSIZEis sent before the edit control is subclassed.So i had to superclass the
EDITclass.EDIT:
Another solution I just thought of would be to subclass it, then call
SetWindowPoswithSWP_FRAMECHANGED, this causes it to send theWM_NCCALCSIZEmessage.If anyone has any opinions why one method would be better then the other, please comment 🙂