『壹』 MFC中 豎排顯示文字
曾經有人問過這個問題:
其實用修改文字格式的方法就能實現,與控制項屬性無關。方法如下:
在OnPaint函數加這個:
CPaintDC dc(this);
CFont vertFont;
CRect rect;
CString strText=" HEllo WoRLD! "; //文本內容
GetClientRect(rect);
//字體
vertFont.CreateFont(16, 0, 900, 900, FW_BOLD,
0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
DEFAULT_PITCH, "Arial");
CFont *pOldFont = dc.SelectObject(&vertFont);
COLORREF oldColor = dc.GetTextColor();
dc.SetTextColor(RGB(255, 0, 255)); //文本顏色
dc.SetBkMode(TRANSPARENT);
dc.TextOut(rect.left+2, rect.bottom-4, strText); //文本起始位置
dc.SetTextColor(oldColor);
dc.SelectObject(pOldFont);
你想豎排顯示的文字還需要動態改變的嗎?我也想不起更好的辦法,你可以試試用n個一個字寬度的文本框組合來顯示,不過這也太麻煩了。我覺得沒有必要為顯示個豎排文字重新寫個類吧,大不了把文字按照豎排的順序重新排一下再顯示嘛,也比重新寫個類要簡單的多。