MFC SIP keyboard causing a redraw - what am I missing?
Posted on 2009-07-06
This is a Windows Mobile app.
I have a screen that has a textbox at the top. The text box is for typing search strings. Through the SETFOCUS and KILLFOCUS events, I have implemented a "zoom" feature. When the user clicks in the box or otherwise starts typing while on this screen, the box zooms to triple size/font, and then returns to original size when user clicks out of the edit box or another event happens that causes the edit to lose focus.
Everything works well, except for one case: toggling the SIP keyboard causes the edit to be redrawn and it is redrawing with the original dimensions rather than the zoomed dimensions. When this happens, the font is still the zoomed size, but the edit is the original size and the only way to "clear" the problem is to tap out of the editbox (to kill focus) and then tap back in.
So it is not losing focus when this happens, but apparently my way of modifying the size is missing something.
// On Focus - zooms
searchVal.SetWindowPos(NULL, 0, 0, rc.Width(), rc.Height()*2 - SCALEX(5), SWP_NOMOVE|SWP_NOZORDER);
// Kill focus, unzooms to original
searchVal.SetWindowPos(NULL, 0, 0, rc.Width(), (rc.Height()+SCALEX(5))/2, SWP_NOMOVE|SWP_NOZORDER);
Can anyone spot what I am missing?