Ulrich Czekalla wrote:
Yes. Currently the code always removes its internal WS_BORDER flag so it doesn't paint its own border. Basically it leaves it to the default nonclient handler. But it should only do this if WS_EX_CLIENTEDGE is set. Otherwise it removes the WS_BORDER style and paints the border itself.
The SetWindowLong call is necessary otherwise the default non-client code will allocate non-client space for the border and we don't want that. We want to handle the border ourselves.
I'm working on an app that relies on this behaviour.
Hi Ulrich, how is it going with this issue ?
I've noticed that this code paints a perfect edit control, with its background color (for the whole area). 4545 es->style &= ~WS_BORDER;
While the following code in place of the line above, doesn't fill the whole edit with the background color, but the area behind the text inside the control ONLY.
4554 if (lpcs->dwExStyle & WS_EX_CLIENTEDGE) 4555 es->style &= ~WS_BORDER; 4556 else if (es->style & WS_BORDER) 4557 SetWindowLongW(hwnd, GWL_STYLE, es->style & ~WS_BORDER);
This is also reletad to 2695.
Thanks !