怎样程序修改系统的显示字体?即显示属性里的大、小字体! 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 帮你UP一下,我只知道怎么判断。Study... 自己填充LOGFONT结构然后用CFont类, 创建字体CreateFontIndirect(&youlogfont);选入字体pDC->SelectObject(&youfont);如果不恢复原有字体, 系统字体(原默认的dc)就被改变了 我的意思是修改Windows本身的大字体、小字体,主要是为设计的程序在不同分辨率、不同字体的系统上显示一样的大小! 我认为使用SystemParametersInfo函数进行修改系统中的信息,具体改哪一项你自己试一下,不过,在你的程序退出时记得修改回来啊! 单的步骤:在Windows中,每个窗体都有自己的字体.要改变其字体首先要CFont::CreateFont创建一个字体,然后用CWnd::SetFont选择此字体,赋给控件.但很多人可能会因为CreateFont的参数之多,望而却步.下面我介绍一下参数. 函数原型: BOOL CreateFont( int nHeight, int nWidth, int nEscapement, int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderline, BYTE cStrikeOut, BYTE nCharSet, BYTE nOutPrecision, BYTE nClipPrecision, BYTE nQuality, BYTE nPitchAndFamily, LPCTSTR lpszFacename ); 参数说明: nHeight :字体高度.>0:字体的高度值;=0:字体采用缺省直.<0:此值的绝对值为高度. nWidth :字体宽度. nEscapement :文本行的倾斜度. nOrientation :字符基线的倾斜度. nWeight :字体的粗细.如下: .FW_DONTCARE .FW_THIN .FW_EXTRALIGHT ..... bItalic :字体是否为斜体 bUnderline :字体是否带下划线 cStrikeOut :字体是否带删除线 nCharSet :字体的字符集 .ANSI_CHARSET .DEFAULT_CHARSET .SYMBOL_CHARSET ...... nOutPrecision :字符的输出精度 nClipPrecision :字符裁剪的精度 nQuality :字符的输出质量 nPitchAndFamily :字符间距和字体族(低位说明间距,高位说明字符族) lpszFacename :字体名称详见http://www.vckbase.com/bbs/prime/viewprime.asp?id=33 SendMessage(hwnd, WM_SETFONT, (WPARAM)hFont, MAKELPARAM(FALSE, 0)); 使用函数ChangeDisplaySettingsEx()或ChangeDisplaySettings()可以改变系统显示方面的各种参数,包括分辨率也可以修改成你需要的大小.试一试你就知道了,用途多多! 将当前显示器的分辨率设为800X600DEVMODE lpDevMode; lpDevMode.dmPelsWidth=800; lpDevMode.dmPelsHeight=600; lpDevMode.dmSize=sizeof(lpDevMode); lpDevMode.dmFields =DM_PELSWIDTH|DM_PELSHEIGHT|DM_BITSPERPEL; 将当前显示器的分辨率设为800X600DEVMODE lpDevMode; lpDevMode.dmPelsWidth=800; lpDevMode.dmPelsHeight=600; lpDevMode.dmSize=sizeof(lpDevMode); lpDevMode.dmFields =DM_PELSWIDTH|DM_PELSHEIGHT|DM_BITSPERPEL; LONG result; result=ChangeDisplaySettings(&lpDevMode,0); if (result==DISP_CHANGE_SUCCESSFUL) { AfxMessageBox("修改成功!"); } 多谢各位,分辨率已经可以修改,我要改的是系统字体,我估计跟注册表有关系,不然,不会每次修改字体都提示重新启动,不管win98还是win2000! First-chance exception :0xC0000008:Invalid Handle 关于学习mfc的几个问题请教? 怎么养得到SD卡下的所有文件名?? 请各位有经验的兄弟姐妹过来看下,怎样才能减少屏幕监控的资源消耗 越是小问题,越见功力!afx是什么的缩写? 现在问一个也是关于settimer和sleep的问题。 请教各位大虾:如何动态调节CEdit框的大小? 看了一个公司tcp/ip<->rs232转换器的介绍,有些不明白 类型转换 Are you know these extreme softwares? 探讨,是否可以建立win98下的邮件服务器? 软件工程师的价值
Study...
然后用CFont类, 创建字体CreateFontIndirect(&youlogfont);
选入字体pDC->SelectObject(&youfont);
如果不恢复原有字体, 系统字体(原默认的dc)就被改变了
BOOL CreateFont( int nHeight, int nWidth, int nEscapement, int nOrientation, int nWeight, BYTE bItalic, BYTE bUnderline, BYTE cStrikeOut, BYTE nCharSet, BYTE nOutPrecision, BYTE nClipPrecision, BYTE nQuality, BYTE nPitchAndFamily, LPCTSTR lpszFacename );
参数说明:
nHeight :字体高度.>0:字体的高度值;=0:字体采用缺省直.<0:此值的绝对值为高度.
nWidth :字体宽度.
nEscapement :文本行的倾斜度.
nOrientation :字符基线的倾斜度.
nWeight :字体的粗细.如下:
.FW_DONTCARE
.FW_THIN
.FW_EXTRALIGHT
.....
bItalic :字体是否为斜体
bUnderline :字体是否带下划线
cStrikeOut :字体是否带删除线
nCharSet :字体的字符集
.ANSI_CHARSET
.DEFAULT_CHARSET
.SYMBOL_CHARSET
......
nOutPrecision :字符的输出精度
nClipPrecision :字符裁剪的精度
nQuality :字符的输出质量
nPitchAndFamily :字符间距和字体族(低位说明间距,高位说明字符族)
lpszFacename :字体名称详见
http://www.vckbase.com/bbs/prime/viewprime.asp?id=33
DEVMODE lpDevMode;
lpDevMode.dmPelsWidth=800;
lpDevMode.dmPelsHeight=600;
lpDevMode.dmSize=sizeof(lpDevMode);
lpDevMode.dmFields =DM_PELSWIDTH|DM_PELSHEIGHT|DM_BITSPERPEL;
DEVMODE lpDevMode;
lpDevMode.dmPelsWidth=800;
lpDevMode.dmPelsHeight=600;
lpDevMode.dmSize=sizeof(lpDevMode);
lpDevMode.dmFields =DM_PELSWIDTH|DM_PELSHEIGHT|DM_BITSPERPEL;
LONG result;
result=ChangeDisplaySettings(&lpDevMode,0);
if (result==DISP_CHANGE_SUCCESSFUL)
{
AfxMessageBox("修改成功!");
}