-1

全部,

这是我用来在 Windows 上获取字体大小的函数:

void wxMyGetCharSize(WXHWND wnd, int *x, int *y, const wxFont& the_font)
{
    TEXTMETRIC tm;
    HDC dc = ::GetDC((HWND) wnd);
    HFONT was = 0;

    HFONT fnt = (HFONT)the_font.GetResourceHandle(); // const_cast
    if ( fnt )
        was = (HFONT) SelectObject(dc,fnt);
    GetTextMetrics(dc, &tm);
    if ( fnt && was )
    {
        SelectObject(dc,was);
    }
    ReleaseDC((HWND)wnd, dc);
    if ( x )
        *x = tm.tmAveCharWidth;
    if ( y )
        *y = tm.tmHeight + tm.tmExternalLeading;
}

问题是我需要在 Mac-Cocoa 端做同样的事情。而且我想在纯 C++ 代码中拥有这样的功能,或者解释如何将 .mm 文件与 cpp 一起使用。

谢谢你。

4

2 回答 2

0

如果您无论如何都在使用 wxWidgets,那么使用wxWindow::GetTextExtent()有什么问题?

于 2013-10-20T11:45:04.583 回答
0

您需要将 cocoa 中的 .m 文件更改为 .mm 文件,然后您可以编写任何您想编写的 C++ 函数。

于 2013-10-20T05:28:35.880 回答