[問題] DrawText 有無改變字體大小速度差了 100 倍....?!
WinCE 上使用 DrawText 如果有改變字體大小的話就會相當相當的慢?!
中文字的話更是明顯。
WCHAR szBuf[1024] = L"一段很長的中文.....";
RECT rc = {0,0,480,500};
DWORD s = GetTickCount();
DrawText(hdc, szBuf, wcslen(szBuf), DT_WORDBREAK);
DWORD e = GetTickCount();
wprintf(L"time = %f\r\n", (e-s)/1000.0f);
===================
這樣平均輸出為 0.004 秒
如果改成....
HFONT font = (HFONT)GetStockObject(SYSTEM_FONT);
LOGFONT lf;
GetObject(font, sizeof(LOGFONT), &lf);
lf.lfHeight = -40;
HFONT bold_font = CreateFontIndirect(&lf);
HFONT old_font = (HFONT)SelectObject(hdc, bold_font);
DWORD s = GetTickCount();
DrawText(hdc, szBuf, wcslen(szBuf), DT_WORDBREAK);
DWORD e = GetTickCount();
wprintf(L"time = %f\r\n", (e-s)/1000.0f);
輸出就會變成 0.6 秒左右,差了 100 倍 .....|||
(我的裝置解析度為 480 * 800)
感覺和字型的快取有關係?但是使用 WinMobile 裡面的 Word
就算字體很大,速度也還OK。
不知道有什麼方法可以解決這個問題呢?謝謝大家!
--
超好用豬頭記帳!!
下載:http://qazq.pixnet.net/blog/post/21654150
程式截圖:http://140.120.13.13/~qazq/PigHeadMoney/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.21.127.208
※ qazq:轉錄至看板 Programming 04/29 11:56
→
04/29 14:04, , 1F
04/29 14:04, 1F
→
04/29 14:39, , 2F
04/29 14:39, 2F
推
04/29 21:36, , 3F
04/29 21:36, 3F
→
04/29 21:37, , 4F
04/29 21:37, 4F
→
04/30 00:34, , 5F
04/30 00:34, 5F
→
04/30 09:31, , 6F
04/30 09:31, 6F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章