Jac*_*ack 1 windows winapi fonts memory-management
我得到的系统默认字体是这样的:
NONCLIENTMETRICS ncm;
ncm.cbSize = sizeof(NONCLIENTMETRICS);
SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &ncm, 0);
HFONT hFont = CreateFontIndirect(&ncm.lfMessageFont);
Run Code Online (Sandbox Code Playgroud)
然后
更改控件的字体如下:
SendMessage(hwnd, WM_SETFONT, (WPARAM) hFont, TRUE);
Run Code Online (Sandbox Code Playgroud)
我的问题是,既然这个字体是由 检索的SystemParametersInfo(),我是否需要用 删除它DeleteObject()?我不确定操作系统拥有该内存,因此我不需要释放它。
SystemParametersInfo返回LOGFONT结构。这些结构不需要被释放。
创建字体(从 aLOGFONT或其他字体)使您负责资源清理。这里的字体对象不是由SystemParametersInfo,而是由调用创建的CreateFontIndirect。
| 归档时间: |
|
| 查看次数: |
179 次 |
| 最近记录: |