⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tfontmanager.h

📁 从FFMPEG转换而来的H264解码程序,VC下编译..
💻 H
字号:
#ifndef _TFONTMANAGER_H_
#define _TFONTMANAGER_H_

class TfontManager
{
private:
 struct THFONT
  {
   THFONT(void):hf(NULL),count(0) {}
   THFONT(const LOGFONT &Ilf):lf(Ilf)
    {
     hf=CreateFontIndirect(&lf);
    }
   LOGFONT lf;
   HFONT hf;
   unsigned int count;
   bool operator ==(const LOGFONT &lf1) const
    {
     return memcmp(&lf,&lf1,sizeof(LOGFONT))==0;
    }
   bool operator <(const THFONT &f1) const
    {
     return count<f1.count;
    }
  };
 typedef std::list<THFONT> THFONTs;
 THFONTs fonts;
public:
 ~TfontManager()
  {
   for (THFONTs::iterator f=fonts.begin();f!=fonts.end();f++)
    DeleteObject(f->hf);
  }
 HFONT getFont(const LOGFONT &font)
  {
   THFONTs::iterator f=std::find(fonts.begin(),fonts.end(),font);
   if (f!=fonts.end())
    {
     f->count++;
     return f->hf;
    }
   if (fonts.size()==32)
    fonts.erase(std::min_element(fonts.begin(),fonts.end()));
   fonts.push_back(font);
   return fonts.back().hf;
  }
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -