调用GetFontData返回GDI_ERROR,是什么原因啊?(附调用代码)

keeneyes 2007-01-12 10:36:05
CWnd * cwnd = AfxGetMainWnd();
CDC *PDC = cwnd->GetDC();
DWORD tag = MAKETABLENAME( 't','t','c','f');
DWORD size = PDC->GetFontData(tag, 0, NULL, 0);
if(size == GDI_ERROR)
unsigned long err = GetLastError();

窗口的字体换了好几种,TTF和TTC格式的字体都试过,size都是等于GDI_ERROR,
但GetLastError返回的错误码err为0。各位遇到过这种情况吗?应该怎么修改呢?
...全文
413 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
spofmy 2007-05-21
  • 打赏
  • 举报
回复
学习了
jacknes009 2007-05-21
  • 打赏
  • 举报
回复
study
zfyccpp 2007-04-03
  • 打赏
  • 举报
回复
我也遇到了,
我代码的原因是LOGFONT的CHARSET没有设置正确。
keeneyes 2007-01-12
  • 打赏
  • 举报
回复
to:jixingzhong(瞌睡虫·星辰)
难道是DWORD tag = MAKETABLENAME( 't','t','c','f');这句话有问题?
MAKETABLENAME宏的定义如下:
#define MAKETABLENAME(ch1, ch2, ch3, ch4) ((((DWORD)(ch4)) << 24) | (((DWORD)(ch3)) << 16) | (((DWORD)(ch2)) << 8) | ((DWORD)(ch1)))
jixingzhong 2007-01-12
  • 打赏
  • 举报
回复
GetLastError返回的错误码err为0

GetLastError returns 0 means that, the operation completed successfully.
jixingzhong 2007-01-12
  • 打赏
  • 举报
回复
the function returns the size of the buffer required for the font data specified in the dwTable parameter, while the 3rd parameter is NULL.
keeneyes 2007-01-12
  • 打赏
  • 举报
回复
没人知道吗?

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧