问题如标题所述:
CDC *pDC=GetDC();
pDC->TestOut(...)怎么控制输出字符的背景色、前景色、字体大小、字体类型先谢谢了!
CDC *pDC=GetDC();
pDC->TestOut(...)怎么控制输出字符的背景色、前景色、字体大小、字体类型先谢谢了!
解决方案 »
- Cshockwaveflash播放flash的问题
- CnComm串口类的一些问题,100分求教!!!
- 填充问题
- 权限修改问题,
- 十万火急啊,请高手指点,关于用VC以resource方式打开工程(*.exe)
- 招聘VC工程师,有意向者请发简历至:[email protected]
- 简单的很啊:如何将Bool型转换为CString型,在MessageBox中显示出来???
- 用过SAPI的请进!
- 哪里有iphlpapi.h 和iphlpapi.lib 及ipexport.h下载呀(在线等待)
- 获取局域网中所有配置了ip的机器的ip地址。
- 300分求教向ginastub添加对话框问题,另外200分结帖后再给
- 怎样读写注册表可以保证在WIN98和WIN2000下正常运行????????
font.CreateFont(200 , 0 , 0 , 0 , FW_BLACK ,
FALSE , FALSE , FALSE ,
GB2312_CHARSET ,
OUT_DEFAULT_PRECIS ,
CLIP_DEFAULT_PRECIS ,
DEFAULT_QUALITY ,
FIXED_PITCH | FF_MODERN,
"宋体");
CDC *pDC=GetDC();
CFont* pOldFont=(CFont*)pDC->SelectObject(&font);
pDC->SetBkMode(TRANSPARENT);
pDC->TestOut(...)
{
CFontOneDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CFont font1,font2,font3,font4,font5;
font1.CreateFont(-36, //字符高度(设备单位)
0, //根据当前方向比率选择最佳宽度
0, //字体角度
0, //字符角度
FW_NORMAL, //字体镑数为正常值
FALSE, //不是斜体
FALSE, //没有下划线
FALSE, //没有删除线
ANSI_CHARSET, //取ANSI_CHARSET字符集
OUT_DEFAULT_PRECIS, //默认输出精度
CLIP_DEFAULT_PRECIS, //默认裁减精度
DEFAULT_QUALITY, //精度差
DEFAULT_PITCH | FF_SWISS,//字体间距与字体族
"Arial"); //选取Arial字体
CFont* pOldFont=pDC->SelectObject(&font1);//保存字体
pDC->TextOut(0,0,"This is Arial");
font2.CreateFont(-36,
0,
0,
0,
FW_BOLD, //字体镑数较大
FALSE,
1, //加下划线
FALSE,
ANSI_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH | FF_MODERN,
"Courier"); //选取Courier字体
pDC->SelectObject(&font2);
pDC->TextOut(0,40,"This is Courier");
font3.CreateFont(-36,
0,
0,
0,
FW_THIN, //字体镑数较小
1,
FALSE,
FALSE,
GB2312_CHARSET, //中文字符集
OUT_STROKE_PRECIS,
CLIP_STROKE_PRECIS,
DRAFT_QUALITY,
VARIABLE_PITCH|FF_MODERN,
"楷体_GB2312"); //选取楷体
pDC->SelectObject(&font3);
pDC->TextOut(150,80,"行云流水");
font4.CreateFont(-36,
0,
0,
0,
FW_NORMAL,
FALSE,
FALSE,
FALSE,
GB2312_CHARSET,
OUT_STROKE_PRECIS,
CLIP_STROKE_PRECIS,
DRAFT_QUALITY,
VARIABLE_PITCH|FF_MODERN,
"隶书"); //选取隶书
pDC->SelectObject(&font4);
pDC->TextOut(0,120,"从前有座山...");
font5.CreateFont(-36,
0,
0,
0,
FW_NORMAL,
FALSE,
FALSE,
FALSE,
GB2312_CHARSET,
OUT_STROKE_PRECIS,
CLIP_STROKE_PRECIS,
DRAFT_QUALITY,
VARIABLE_PITCH|FF_MODERN,
"华文彩云"); //选取华文彩云字体
pDC->SelectObject(&font5);
pDC->TextOut(0,160,"华文彩云");
pDC->SelectObject(pOldFont); //恢复原先字体
}
-----------------------------------------void CFontTwoView::OnDraw(CDC* pDC)
{
CFontTwoDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CFont font1,font2,font3;
LOGFONT logFont;
//绘制第一行
logFont.lfHeight=-40; //字符高度
//根据当前方向比率选择最佳宽度
logFont.lfWidth=0;
logFont.lfEscapement=0; //字体角度
logFont.lfOrientation=0; //字符角度
logFont.lfWeight=FW_NORMAL; //字体镑数为正常值
logFont.lfUnderline=FALSE; //没有下划线
logFont.lfStrikeOut=FALSE; //没有删除线
logFont.lfCharSet = ANSI_CHARSET;
logFont.lfOutPrecision = OUT_DEFAULT_PRECIS;
logFont.lfClipPrecision = CLIP_DEFAULT_PRECIS;
logFont.lfQuality = PROOF_QUALITY;
logFont.lfPitchAndFamily = VARIABLE_PITCH | FF_ROMAN;
strcpy(logFont.lfFaceName, "Times New Roman");
font1.CreateFontIndirect(&logFont);
//选入新建字体,并保存原有字体
CFont* pOldFont=pDC->SelectObject(&font1);
pDC->TextOut(0,0,"This is Times New Roman");
//绘制第二行
logFont.lfHeight=40; //字体大小
font2.CreateFontIndirect(&logFont); //创建新字体
pDC->SelectObject(&font2); //选入新建字体
pDC->TextOut(0,80,"This is Times New Roman");
//绘制第三行
logFont.lfHeight=45;
logFont.lfEscapement=450; //逆时针旋转45度
logFont.lfOrientation=450;
logFont.lfUnderline=1;
logFont.lfCharSet=GB2312_CHARSET; //选入中文字库
logFont.lfOutPrecision=OUT_STROKE_PRECIS;
logFont.lfClipPrecision=CLIP_STROKE_PRECIS;
logFont.lfQuality=DRAFT_QUALITY;
logFont.lfPitchAndFamily=VARIABLE_PITCH|FF_MODERN;
strcpy(logFont.lfFaceName,"华文行楷");
font3.CreateFontIndirect(&logFont); //创建新字体
pDC->SelectObject(&font3); //选入新字体
pDC->SetTextColor(RGB(255,255,255)); //将文本颜色设为白色
pDC->SetBkColor(RGB(0,0,0)); //将文本背景颜色设为黑色
pDC->TextOut(200,200,"谁说我不在乎!");
pDC->SelectObject(pOldFont); //恢复原有字体
}
-----------------------------------------
不就是个CreateFont吗?那么铺张干什么?