谁能给我一段GDI的函数?

skyover 2006-08-26 06:01:09
使用指定字体(可能为ttf,fon,pfm...,且未安装在系统内)和前景色背景色写几个字的一段函数?
返回一个Bitmap或者一个指针都行。

谢了
...全文
236 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyover 2006-08-27
  • 打赏
  • 举报
回复
只要实现类似于fontViewer的功能即可。。
jun_01 2006-08-26
  • 打赏
  • 举报
回复
好像是字体左边带一个圈的在c#中不能输出。选了那些字体会自动变成默认的字体。

不过所有的特效字体都是truetype的,其实只有系统里的个别字体不行。
skyover 2006-08-26
  • 打赏
  • 举报
回复
事实上,我是用C#...可是GDI+不能实现使用除了TTF以外的字体。所以求助于GDI.
jun_01 2006-08-26
  • 打赏
  • 举报
回复
另外,以上只是把东西显示在一个窗体中,如果是bitmap:

先创建一个兼容bitmap和兼容dc,把bitmap选入dc。

再用以上代码绘制。
jun_01 2006-08-26
  • 打赏
  • 举报
回复
void xxx::OnPaint()
{
PAINTSTRUCT ps = {0};
BeginPaint(m_hWnd, &ps);

HFONT hFont = CreateFont(18, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE,
DEFAULT_CHARSET, OUT_DEVICE_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
DEFAULT_PITCH, _T("宋体"));


SetTextColor(ps.hdc, RGB(255, 0, 0));
SetBkMode(ps.hdc, TRANSPARENT);

HFONT hFontOld = (HFONT)SelectObject(ps.hdc, hFont);

FillRect(ps.hdc, &m_rcClient, (HBRUSH)GetStockObject(BLACK_BRUSH));

DrawText(ps.hdc, _T("wa ka ka"), -1, &ps.rcPaint, DT_LEFT | DT_TOP);

SelectObject(ps.hdc, hFontOld);

DeleteObject(hFontOld);

EndPaint(m_hWnd, &ps);
}
==========
但愿它没有笔误,如果你是用mfc,可能这段代码会让你觉得不爽。
youngwolf 2006-08-26
  • 打赏
  • 举报
回复
CDC* pDC = GetDC();
CDC TempDC;
TempDC.CreateCompatibleDC(pDC);
CBitmap TempBmp;
TempBmp.CreateCompatibleBitmap(pDC, 100, 100); //位图大小
TempDC.SelectObject(&TempBmp);
//TempDC.SelectObject(...);//这里可以选择你想要的字体
//TempDC.TextOut(...);//这里写字
ReleaseDC(pDC);
//此时TempBmp就是你要的
skyover 2006-08-26
  • 打赏
  • 举报
回复
那你先给我一段使用随意字体的?
jun_01 2006-08-26
  • 打赏
  • 举报
回复
且未安装在系统内?

那不会了。。。。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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