你的程序有错!
理论上DeleteObject(hFont)没错,
但此时您并没有将新的字体赋给该窗口。
造成该窗口DC的字体HFONT是非法的,
因此下一次GetObject会出错。
应加上::SetMessage(hWnd,WM_SetFont,...);

解决方案 »

  1.   

    softdoctor先生:
    由于我的疏忽.我确实忘记了。
    补充上时这样的:
    *************************************************
    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)函数会出错.