我设置了CFont* m_pFont; 但是程序运行之后提示我  断言错误 在ASSERT(m_hObject == NULL)  
完整的是_AFXWIN_INLINE int CFont::GetLogFont(LOGFONT* pLogFont)
{ ASSERT(m_hObject != NULL);     //////////////////////停在此处
return ::GetObject(m_hObject, sizeof(LOGFONT), pLogFont); }开始以为是没有创建  但是再后面的函数里我实现了m_pFont依然提示我这样的错误
void CRichToolTipDemoRichEditCtrl::InitMyEditCtrl()
{
LOGFONT lf;  
HFONT hFont = (HFONT)GetStockObject(SYSTEM_FONT);
GetObject(hFont, sizeof(LOGFONT), &lf);
m_pFont= new CFont;
m_pFont->CreateFont(-12,0,0,0,400,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_SWISS,"宋体");
m_colorsel=RGB(00,00,255); // Blue 
}
不知道怎么回事儿?!  请教各位大侠

解决方案 »

  1.   

    GetLogFont 这个是给系统自己调用的么
      

  2.   

    HFONT hFont = (HFONT)GetStockObject(SYSTEM_FONT);
    ASSERT(hFont);//看这里是否成功?
      

  3.   

    让m_pFont声明成临时变量,不要是类成员变量或者static变量,试试
      

  4.   

    http://topic.csdn.net/u/20100516/15/bb251d1f-d1bc-401e-b379-353ca25173de.html
      

  5.   

    m_pFont->CreateFont 失败
    看看返回值,如果失败调用GetLastError()查看错误信息
      

  6.   

    1.你用的字体变量是否引用对了?
    2。CreateFont 是否建立成功
      

  7.   

    你要单步一下,貌似你这句有问题HFONT hFont = (HFONT)GetStockObject(SYSTEM_FONT);
    如果你解决不聊,我建议你可以改用:// The code fragment shows how to create a font object,
    // select the font object into a DC (device context) for text
    // drawing, and finally delete the font object.CClientDC dc(this);CFont font;
    VERIFY(font.CreatePointFont(120, "Arial", &dc));// Do something with the font just created...
    CFont* def_font = dc.SelectObject(&font);
    dc.TextOut(5, 5, "Hello", 5);
    dc.SelectObject(def_font);// Done with the font. Delete the font object.
    font.DeleteObject();
      

  8.   

    提示我
    我是这样写的
     public:
    CFont* m_pFont;
    实现文件中
        LOGFONT lf;
    m_richedit_msg.m_pFont->GetLogFont(&lf);   //取得消息的字体格式
    查了下m_pFont和&lf 的值,都是提示&lf CXX0017: 错误: 没有找到符号“lf”
    这个是怎么回事儿呢?
    我已经new  和 create过了m_pFont    不过还是出现这个问题
    另外是m_richedit_msg是DDX_Control(pDX, IDC_MSG, m_richedit_msg);
    想取得窗体内输入的字符格式~~ 所以就这么m_richedit_msg.m_pFont->GetLogFont(&lf)写了请大侠指导
      

  9.   

    提示 m_pFont->CreateFont CXX0017: 错误: 没有找到符号“m_pFont”
    没有字体变量m_pFont,所以创建就不成功了!! 不过为什么创建不成功呢?
    命名在类成员里声明了啊!怎样解决这个问题?
    因为是想得到窗体里的字体,所以在类里声明了,如果弄成临时变量的话,怎么能够得到窗体的值呢?