酷徒LOGO
0 0 评论
文章标签:TEX  位图  文本  BIT  

Sample Image - GDITest.jpg

介绍

我不经常发现自己需要知道gdi相关的东西。 事实上,我可以一手计算过去 13年内发生的次数。 如果你每天都在做笔,画笔,线条,位图,Windows,那么你就不需要在日常的基础上做这些事情了,那你就超出了本文的范围。 我将本文归类为"中间",但它实际上应该介于"初学者和中级"类的"beginner+"分类之间。

总之,这是一个有趣的和教育的练习,在一个位图上呈现一些文本所需要的。 可以在这里找到这样的一个例子:。 我首先想到如何手动创建位图结构,并将结果保存到文件中,并将结果保存到 molehill。 我想这会是可以能的但是这种方法很难解决。

我的下一个想法是 GDI+ API中可能存在一些方便的东西。 我找到了 ImageGraphics 类,它们看起来像正确的方法。 我第一次尝试失败了,所以我尝试了最后一件事,只使用 GDI。

结果

业务的第一个阶段是将位图图像加载到与显示直流兼容的设备上下文( 直流) 中。 这是用以下方法完成的:

HBITMAP hBitmap = (HBITMAP) LoadImage(0, 
 _T("somefile.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);if (NULL!= hBitmap)
{
 CBitmap Bitmap;
 Bitmap.Attach(hBitmap);
 CDC dcCompatible;
 dcCompatible.CreateCompatibleDC(pDC);
 CBitmap *pOldBitmap = dcCompatible.SelectObject(&Bitmap);
}

此时,临时DC已经存在并包含已经加载的位图。 下一步是在同一个DC上呈现一些。 这是用以下方法完成的:

dcCompatible.TextOut(x, y, _T("Some text here"));

我们现在在位图顶部有文本。 要将结果呈现到显示器,需要将临时DC的内容复制到显示 DC。 这是用以下方法完成的:

pDC->BitBlt(0, 0, width, height, &dcCompatible, 0, 0, SRCCOPY);

如此 而已, 岂 有 他 哉! 我做了一些其他的事情,但是它们更适合于示例项目,而不是本文的上下文。 打印预览,处理没有定义墙纸的桌面,以及查询网络和工作站以获得有用信息的操作。

引用

为了找到我要寻找的信息,我必须咨询几个网站和USENET组。 特别感谢 Mike 和约翰。Rosengren。



文章标签:文本  TEX  BIT  位图  

Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备17041772号-2  |  如果智培  |  酷兔英语  |  帮酷