请问如何获得中文字体的英文名?VC

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问如何获得中文字体的英文名?VC相关的知识,希望对你有一定的参考价值。

请问如何获得中文字体的英文名?这两者是用什么方法一一对应起来的?比如宋体,对应的英文字体(FaceName)名称为SimSun使用 EnumFontFamiliesEx英文系统上获得的当然是英文名但中文系统上如何获得宋体字体的英文名SimSun?英文系统上如何将“宋体”(FaceName)转换成英文名SimSun?谢谢

字体注册到系统的时候,就会把名字根据系统类型写到注册表里了 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts 枚举字体的时候,字体名无非是从注册表里读取而已。 参考技术A 使用Font Creator Program 4.1打开想要查看的字体文件,点击菜单里的格式→命名,里面的“包括完整字体名称”就是了

VC如何获得当前线程的ID

用CreateThread创建线程后,怎么在线程函数中获得当前线程的ID,。。。此外,我创建2个线程输出多行字符,希望出现的是交错的顺序,但偏偏出现的顺序是顺序执行两个函数的顺序,为什么?
图片:

获取当前进程的ID很简单,一种方法是调用GetCurrentThreadId()函数即可;
还有一处更简单的哈,就是在你创建进程的时候就知道了:如
m_hThread = ::CreateThread(NULL, 0, MyThreadProc, this, 0, &m_threadID);//最后一个参数就是线程ID

另外,你想出现的是交错的顺序也很简单,就是做好互斥工作就是了,在线程的相应位置调用WaitForSingleObject();不要忘了解锁即可,我是用SetEvent();最好后面加上Sleep(10);这样看到的效果就更明显了!
参考技术A CreateThread函数共六个参数,第六个参数能获得线程ID,不要设置成NULL。
你说这个顺序问题,应该是你没设置Sleep(),循环每个输出之间你设置一个Sleep。

以上是关于请问如何获得中文字体的英文名?VC的主要内容,如果未能解决你的问题,请参考以下文章

请问vc中为啥有的函数前缀为下划线,有的函数无下划线?两者有啥区别?

请问如何获得GridView选中行的每一列的信息?

请问VC#中突然DevExpress控件全部消失了? 如何解决? 谢谢!

VC2008如何将Cstring转成long型?

请问ckfinder for asp.net的图片名中文变乱码如何解决??

请问高手:我用VC++ 写了个基于对话框的程序,想将Word文档的图文内容显示在对话框上,如何实现?