?? 字體&文本.txt
字號:
49. 如何創(chuàng)建一個具有特定點大小的字體
可以指定字體邏輯單位的大小,但有時指定字體的點的大小可能會更方便一些。可以如
下將字體的點轉(zhuǎn)換為字體的高度:
int nHeigth=mulDiv (nPointSize, -dc.GetDeviceCaps (LOGPIXELSY), 72);
下例創(chuàng)建了一個8點的Apial字體:
CClientDC dc (AqfxGetMainWnd ());
m_font. CreateFont (MulDiv (8, -dc.GetDeviceCaps (LOGPIXELSY),
72),0,0,0,FW_NORMAL,0,0,0,ANSI_CHARSET,
OUT_STROKE_PRECIS,CLIP_STROKE_PRECIS,DRAFT_QUALITY,
VARIABLE_PITCH | FF-SWISS,_T ("Arial"));
------------------------------------------------
//得到當前字體的信息
TEXTMETRIC tm;
CClientDC dc(this);
dc.GetTextMetrics(&tm);
------------------------------------
51. 如何顯示旋轉(zhuǎn)文本
只要用戶使用TrueType或者GDI筆或字體就可以顯示旋轉(zhuǎn)文本(有些硬件設(shè)備也支持旋
轉(zhuǎn)光柵字體)。LOGFONT 結(jié)構(gòu)中的ifEscapement 成員指定了文本行和x 軸的角度,角度
的單位是十分之一度而不是度,例如,ifEscapement 為450 表示字體旋轉(zhuǎn)45度。為確
保所有的字體沿坐標系統(tǒng)的同一方向旋轉(zhuǎn),一定要設(shè)置ifEscapement 成員的
CLIP_LH_ANGLES位,否則,有些字體可能反向旋轉(zhuǎn)。下例使用了14點Arial字體每間
隔15度畫一個串。
void CSampleView:: OnDraw (CDC* pDC)
{
//Determine the size of the window.
CRect rcClient;
GetClientRect (rcClient);
//Create sample string.
CString str (_T ("Wheeee...I am rotating!"));
//Draw transparent, red text.
pDC->SetBkMode (TRANSPARENT);
pDC->SetTextColor (RGB (255,0,0));
CFont font; //font object
LOGFONT stFont; //font definition
//Set font attributes that will not change.
memset (&stFont, 0, sizeof (LOGFONT));
stFont.ifheight=MulDiv (14, -pDC->GetDeviceCaps (LOGPIXELSY), 72);
stFont.ifWeight=FW_NORMAL;
stFont.ifClipPrecision=LCIP_LH_ANGLES;
strcpy (stFont.lfFaceName, "Arial");
//Draw text at 15degree intervals.
for (int nAngle=0; nAngle<3600; nAngle+=150)
{
//Specify new angle.
stFont.lfEscapement=nAngle;
//Create and select font into dc.
font.CreateFontIndirect (&stfont);
CFont* pOldFont=pDC->SelectObject (&font);
//Draw the text.
pDC->SelectObject (pOldFont);
font.DelectObjext ();
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -