全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2677
推到 Plurk!
推到 Facebook!

請問有人使用過 EnumFonts ( 或 EnumFontFamilies、EnumFontFamiliesEx ) 嗎

缺席
linly
一般會員


發表:42
回覆:37
積分:15
註冊:2007-10-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-12-20 20:34:09 IP:140.113.xxx.xxx 訂閱
EnumFonts 的 prototype 是

[code cpp]
int EnumFonts(
HDC hdc, // handle to DC
LPCTSTR lpFaceName, // font typeface name
FONTENUMPROC lpFontFunc, // callback function
LPARAM lParam // application-supplied data
);

[/code]


其中第三個參數是 callback function,長相是
[code cpp]
int EnumFontsProc(
lplf lplf, // 邏輯字型 LOGFONT 資料
lptm lptm, // 字型資料 TEXTMETRIC
DWORD dwType, // 系統傳來之字型種類
LPARAM lpData // 程式傳來的參數
);
[/code]



當我在使用的一直出現以下訊息

"[C Error] GlobalParams.cpp(285): E2034 Cannot convert 'int (__stdcall *)(const tagLOGFONTA *,const tagTEXTMETRICA *,unsigned long,long)' to 'int (__stdcall *)()'"
"[C Error] GlobalParams.cpp(285): E2340 Type mismatch in parameter 3 (wanted 'int (__stdcall *)()', got 'int (__stdcall *)(const tagLOGFONTA *,const tagTEXTMETRICA *,unsigned long,long)')"

看起來編譯器是說我 callback function 參數個數不對,以下是 callback function 定義

[code cpp]
WinFontList::WinFontList(char *winFontDirA) {
...
...
if ( RegOpenKeyEx( HKEY_LOCAL_MACHINE, path, 0, KEY_QUERY_VALUE |
KEY_ENUMERATE_SUB_KEYS, ®Key) == ERROR_SUCCESS )
{
EnumFonts( dc, NULL, &WinFontList::enumFunc1, (LPARAM)this );
RegCloseKey(regKey);
}

ReleaseDC(NULL, dc);
}

int CALLBACK WinFontList::enumFunc1( CONST LOGFONT *font, CONST TEXTMETRIC *metrics,
DWORD type, LPARAM data )
{
WinFontList *fl = (WinFontList *)data;
EnumFonts(fl->dc, font->lfFaceName, &WinFontList::enumFunc2, (LPARAM)fl);
return 1;
}

int CALLBACK WinFontList::enumFunc2( CONST LOGFONT *font, CONST TEXTMETRIC *metrics,
DWORD type, LPARAM data )
{
...
return 1;
}

[/code]


使用 EnumFontFamilies 結果也是一樣,請問一下為什麼?感謝!!! :)
編輯記錄
linly 重新編輯於 2007-12-20 20:36:00, 註解 無‧
linly 重新編輯於 2007-12-20 20:37:59, 註解 無‧
linly 重新編輯於 2007-12-20 20:39:14, 註解 無‧
linly 重新編輯於 2007-12-20 20:40:16, 註解 無‧
linly 重新編輯於 2007-12-20 20:42:37, 註解 無‧
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-12-21 16:04:39 IP:122.124.xxx.xxx 訂閱
系統時間:2024-04-18 18:16:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!