如有人能回答此问题,赠送真正的中文API大全一套,绝对真正的大全,网上没有的,绝不食言

radcat 2006-12-29 08:20:35
如有人能回答此问题,赠送真正的中文API大全一套,绝对真正的大全,不是网上叫windows api大全chm那本,那本虽然叫大全但大部分函数都没有,我保证我手里这本每一个函数都可以查到.

问题如下:

微软新推出的据说将要取代GDI图形函数的GDI+可能有缺陷,设置不了字体宽度!!!

LOGFONTA logfonta;
logfonta.lfHeight=100;
logfonta.lfWidth=30;//字体宽度
logfonta.lfEscapement=0;
logfonta.lfOrientation=0;
logfonta.lfWeight=0;
logfonta.lfItalic=0;
logfonta.lfUnderline=0;
logfonta.lfStrikeOut=0;
logfonta.lfCharSet=0;
logfonta.lfOutPrecision=0;
logfonta.lfClipPrecision=0;
logfonta.lfQuality=0;
logfonta.lfPitchAndFamily=0;
strcpy(logfonta.lfFaceName,"宋体");

HFONT hfont=CreateFontIndirect(&logfonta);//gdi方法
用了上面的结构,如用gdi,上面的logfonta可以设置宽度,

改用DGI+
Font font(hdc,&logfonta);
只有字体、加粗、加划线是好使的.不会是GDI越出越差了吧???
...全文
494 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
chehw 2007-01-10
  • 打赏
  • 举报
回复
紧缩或拉伸字体显示时,仅通过修改字体宽度并不能完全达到预期效果。系统会选择一个它所支持的最接近的模式(而不是自己指定的宽宽)来输出。

WIN2K以上操作系统用GDI方式实现任意比例的拉伸、扭曲和任意角度的旋转,一般通过SetGraphicsMode(hdc, GM_ADVANCED);和SetWorldTransform(hdc, &xForm);来实现。

GDI+下没试过,你可以查一下是否有类似的方法。
ribut9225 2007-01-10
  • 打赏
  • 举报
回复
关注
chehw 2007-01-08
  • 打赏
  • 举报
回复
MSDN:A LOGFONTA(/W) structure is a GDI structure. GDI+ uses only some of the attributes contained in this structure.

GDI+虽使用起来较为方便,但功能有限。

可用以下方法适一下:
HFONT hFont=CreateFont(iHeight, iWidth, 0,0, FW_NORMAL,
0,0,0,
DEFAULT_CHARSET,
OUT_TT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUANTITY,
DEFAULT_PITCH | FF_DONTCARE,
TEXT("宋体"));

Font font(hdc, hFont);
radcat 2007-01-08
  • 打赏
  • 举报
回复
首先谢谢楼上的朋友,不过经过改完验证,这种方法仍不好使,函数如下:

void show(HDC hdc)
{
HFONT hFont;
hFont=CreateFont(100/*高度*/, 10/*宽度*/, 0,0, FW_NORMAL,
0,0,0,
DEFAULT_CHARSET,
OUT_TT_PRECIS,
CLIP_DEFAULT_PRECIS,
OUT_DEFAULT_PRECIS,
DEFAULT_PITCH | FF_DONTCARE,
TEXT("宋体"));
SolidBrush brush(Color(255,0,0,255));
PointF pointF(5,5);
Font font(hdc,hFont);
Graphics graphics(hdc);
graphics.DrawString(L"中国人是龙的子孙",-1,&font,pointF,&brush);
}
输出的文字依然无法改变字宽,这种方法我在最初用那个字体结构时也同时用过此方法试过,不好使,今天看到楼上朋友的提醒又试了一次不过仍不好使,不知道GDI+用何种方法设字宽,但感觉上应该是可以设置的,要不然这个简单的一个要求都达不到,那GDI+的出现就真的让人怀疑其出现的意义了,或者可以说这难道真的是微软产品中的一个缺陷吗?如果是缺陷也太大点了吧!微软竟会犯这种错误!!!!!!!!!!!!!!!!!!!!!!!!

希望csdn中的高手们帮助解答此问题!!!!!!!!!!!!!!!!!
希望csdn中的高手们帮助解答此问题!!!!!!!!!!!!!!!!!
希望csdn中的高手们帮助解答此问题!!!!!!!!!!!!!!!!!

如能有高手解答此问题,本人将真诚的向您表示感谢!
sunyjm 2007-01-06
  • 打赏
  • 举报
回复
幫頂。
中文API大全一套能寄一份給我麼? sunylf@163.com
chengjian2006 2007-01-05
  • 打赏
  • 举报
回复
顶!
zhuzhiyou 2007-01-05
  • 打赏
  • 举报
回复
不太懂,帮你顶一下
radcat 2007-01-05
  • 打赏
  • 举报
回复
不是吧!!这里是csdn呀,提出问题都一周了,没人能回答吗?
radcat 2006-12-30
  • 打赏
  • 举报
回复
大家帮帮我呀,支持一下呀,没人能解决这个问题吗?
radcat 2006-12-30
  • 打赏
  • 举报
回复
谢谢楼上的,不过整个程序都已经写完了,用的GDI+处理文字部分,因为当时看中了它的方便的文字半透明和设置以毫米为单位打印功能,整个程序如果文字部分全部重新用GDI重写,我会疯掉的麻烦哪位好心人帮一下吧.
wenbaby 2006-12-30
  • 打赏
  • 举报
回复
建议绘制文本这一块还是采用gdi,其他的如图形图象处理部分采用gdi+.
radcat 2006-12-29
  • 打赏
  • 举报
回复
基于GDI+技术的方便\快捷和高效率,国内已有不少程序开发人员在程序设计中开始使用GDI+技术来取代传统的GDI编程.
这是我的DGI+教材上的一句话,并且经过我的验证,它确实不错,例如直接支持文字的透明,过度色,或图形格式的增加例如jpeg\tif\png等.
另外我在网上也见到过,GDI+将是GDI的新版本的说法,我理解会不会就像C++和C的关系.

但我现在最想知道的还是怎样设置字宽这个初级问题,实在让我太头痛了,我的软件其它部分都完成了就差这一个把整个软件的完工日期给卡住了,希望哪位好心人能帮帮我!!!
会思考的草 2006-12-29
  • 打赏
  • 举报
回复
GDI+并不是用来取代GDI的吧,有些功能GDI+并不能代替GDI。
radcat 2006-12-29
  • 打赏
  • 举报
回复
这么好的东西没人要吗?
radcat 2006-12-29
  • 打赏
  • 举报
回复
不是strcpy(logfonta.lfFaceName,_T("宋体")); 的问题,在GDI中使用这个结构没有问题.也就是说这个结构没有任何问题.
也不是只有部分类型的字体支持调整宽度,因为在GDI中每种字体都可以调整宽度,而同样用这个结构GDI+就不行,而且本人并未查到GDI+有其它方法设字宽.

想与大家讨论的是将来的GDI+(据说要取代GDI)是否连字宽都不支持,那还谈什么取代GDI呀!!

至于楼上说查API用MSDN当然是够了,不过我想不是每个人英文和中文都看着一样舒服吧,遇到一个新函数我感觉还是看中文的舒服一些,况且有这种好东东为什么不要呢?
moonphy 2006-12-29
  • 打赏
  • 举报
回复
支持字体调整的字库应该是矢量字库吧,这样缩放才不至于失真的厉害,普通的点阵字库缩放都会失真的很厉害。
DarknessTM 2006-12-29
  • 打赏
  • 举报
回复
API看MSDN足够了

至于你这个问题,可能是和字体有关,大概只有部分类型的字体支持调整宽度
ProgrameMan 2006-12-29
  • 打赏
  • 举报
回复
strcpy(logfonta.lfFaceName,_T("宋体")); // 是不是因为这个?

cygroup#tom.com # to @ 谢谢! ;)
pioneer_public 2006-12-29
  • 打赏
  • 举报
回复
设置了字体高度,就不能设置宽度的
radcat 2006-12-29
  • 打赏
  • 举报
回复
楼上的是指GDI+只使用这个结构的一部分吗?那如何设置字宽呢?还有其它方法了吗,恭敬的等待着您的回答
加载更多回复(2)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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