QUOTE 下面引用由jingulong在 2003/03/24 05:00pm 发表的内容: 版主的这招实在太狠,眼下在下功夫不济。 (不过版主的“点睛自动字体设置 第二版 优化版”目前也不能啊!)
给你看看源代码吧:
CODE #define cat1 "这是使用 CreateFontA 创建的字体。" #define cat2 "This font is Created by "CreateFontA"." #define cait1 "这是使用 CreateFontIndirectA 创建的字体。" #define cait2 "This font is Created by "CreateFontIndirectA"." #define gso "这是使用 GetStockObject 创建的字体。This font is Created by "GetStockObject"." //////////////////////////////////////////////////////////////////////////////// // 重绘事件处理函数。 #define TOP 40 void Dlg_OnPaint(HWND hDlg, HDC hdc) { static LOGFONT lf = {0}; static HMODULE gdi; static FARPROC mCreateFont; static FARPROC mCreateFontIndirect; static FARPROC mGetStockObject; gdi = LoadLibrary(TEXT("GDI32.dll")); mCreateFont = GetProcAddress( gdi, "CreateFontA" ); mCreateFontIndirect = GetProcAddress( gdi, "CreateFontIndirectA" ); mGetStockObject = GetProcAddress( gdi, "GetStockObject" ); SetBkMode(hdc, TRANSPARENT); SelectObject(hdc, mCreateFont(-30,0,0,0,FW_NORMAL,0,0,0,0,0,0,0,0,"Arial")); TextOut(hdc, 60, TOP, cat1, lstrlen(cat1)); TextOut(hdc, 60, TOP + 50, cat2, lstrlen(cat2)); lf.lfWeight = FW_NORMAL; lf.lfHeight = -30; lstrcpy(lf.lfFaceName, "Arial"); SelectObject(hdc, mCreateFontIndirect(&lf)); TextOut(hdc, 60, TOP + 150, cait1, lstrlen(cait1)); TextOut(hdc, 60, TOP + 200, cait2, lstrlen(cait2)); SelectObject(hdc, mGetStockObject( 11 )); TextOut(hdc, 60, TOP + 300, gso, lstrlen(gso)); SelectObject(hdc, mGetStockObject( 12 )); TextOut(hdc, 60, TOP + 320, gso, lstrlen(gso)); SelectObject(hdc, mGetStockObject( 13 )); TextOut(hdc, 60, TOP + 340, gso, lstrlen(gso)); SelectObject(hdc, mGetStockObject( 14 )); TextOut(hdc, 60, TOP + 360, gso, lstrlen(gso)); SelectObject(hdc, mGetStockObject( 16 )); TextOut(hdc, 60, TOP + 380, gso, lstrlen(gso)); SelectObject(hdc, mGetStockObject( 17 )); TextOut(hdc, 60, TOP + 400, gso, lstrlen(gso)); }
|