winemac.drv: Improve positioning of IME client window based on caret

Ken Thomases ken at codeweavers.com
Wed Feb 19 15:57:12 CST 2014


On Feb 19, 2014, at 3:42 PM, Aric Stewart wrote:

> On 2014/02/20 0:32, Ken Thomases wrote:
>> I don't think this does what you want.  GetDC() typically returns a DC whose parameters were reset.  It doesn't know what font has previously been used in the window.  So, you're basically getting the metrics for the System font.  I suppose that may be better than nothing.
> 
> I never knew that about GetDC, I did not see anything about reset parameters in MSDN.

It's the first paragraph of the Remarks.  <http://msdn.microsoft.com/en-us/library/windows/desktop/dd144871%28v=vs.85%29.aspx>  Don't be confused by the last sentence with its mention of GetTextFace().  That's not a solution to the problem described in the rest of the paragraph; it's a non sequitur.

> It was working for me pretty accurately in my testing even with different fonts.  Is there a way to get the font metrics from a window handle?

No.  This isn't a property of the window in the common case.  It's only a property of the DC, which may exist only temporarily while drawing.  And one may select various fonts into the DC at different times to draw different parts of the window.

-Ken




More information about the wine-devel mailing list