你的程序有错!
理论上DeleteObject(hFont)没错,
但此时您并没有将新的字体赋给该窗口。
造成该窗口DC的字体HFONT是非法的,
因此下一次GetObject会出错。
应加上::SetMessage(hWnd,WM_SetFont,...);
理论上DeleteObject(hFont)没错,
但此时您并没有将新的字体赋给该窗口。
造成该窗口DC的字体HFONT是非法的,
因此下一次GetObject会出错。
应加上::SetMessage(hWnd,WM_SetFont,...);
由于我的疏忽.我确实忘记了。
补充上时这样的:
*************************************************
HFONT hFont,hNewFont;
LOGFONT logFont;
hFont = (HFONT)::SendMessage(hWnd, WM_GETFONT, 0, 0);
GetObject(hFont,sizeof(LOGFONT),&logFont);
logFont.lfHeight = pLogFont->lfHeight*2;
hNewFont = ::CreateFontIndirect(&logFont);
SendMessage(hWnd,WM_SETFONT,(WPARAM)hNewFont,TRUE);
DeleteObject(hFont);
*************************************************
问题:我如果加上DeleteObject(hFont)这句,
此后,设置下一个同类控制时
GetObject(hFont,sizeof(LOGFONT),&logFont)函数会出错.