当前位置:首页 > c++ > c++调出系统字体选择对话框

c++调出系统字体选择对话框

xuwenyan7个月前 (02-15)c++570

demo代码

#include <windows.h>

int main() {
  CHOOSEFONT cf;
  LOGFONT lf;

  cf.lStructSize = sizeof(CHOOSEFONT);
  cf.hwndOwner = (HWND)NULL;
  cf.hDC = (HDC)NULL;
  cf.lpLogFont = &lf;
  cf.iPointSize = 0;
  cf.Flags = CF_SCREENFONTS;
  cf.rgbColors = RGB(0, 0, 0);
  cf.lCustData = 0L;
  cf.lpfnHook = (LPCFHOOKPROC)NULL;
  cf.lpTemplateName = (LPWSTR)NULL;
  cf.hInstance = (HINSTANCE)NULL;
  cf.lpszStyle = (LPWSTR)NULL;
  cf.nFontType = SCREEN_FONTTYPE;
  cf.nSizeMin = 0;
  cf.nSizeMax = 0;

  ::ChooseFont(&cf);

  // 得到HFONT 返回
  HFONT hfont = ::CreateFontIndirect(&lf);
  ::DeleteObject(hfont);

  return 0;
}

效果展示



cf.Flags还可以通过加入CF_APPLY标志在字体选择对话框中添加应用按钮,点击应用按钮会触发WM_COMMAND消息,此时可以通过WM_CHOOSEFONT_GETLOGFONT消息来获取选择的字体。

关于字体选择的详细介绍请阅读微软文档:CHOOSEFONT

    文章作者:xuwenyan
    版权声明:本文为本站原创文章,转载请注明出处,非常感谢,如版权漏申明或您觉得任何有异议的地方欢迎与本站取得联系。

    发表评论

    访客

    ◎欢迎参与讨论,请在这里发表您的看法和观点。