但是程序运行之后提示我 断言错误 在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
}
不知道怎么回事儿?! 请教各位大侠
13 个解决方案
#1
GetLogFont 这个是给系统自己调用的么
#2
HFONT hFont = (HFONT)GetStockObject(SYSTEM_FONT);
ASSERT(hFont);//看这里是否成功?
ASSERT(hFont);//看这里是否成功?
#3
让m_pFont声明成临时变量,不要是类成员变量或者static变量,试试
#5
m_pFont->CreateFont 失败
看看返回值,如果失败调用GetLastError()查看错误信息
看看返回值,如果失败调用GetLastError()查看错误信息
#6
1.你用的字体变量是否引用对了?
2。CreateFont 是否建立成功
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)写了
请大侠指导
我是这样写的
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
不成功!?
#10
用了你给你的代码 还是不好用啊
#11
帮顶了~~一起学习~
#12
感谢帮顶了!!!
#13
提示 m_pFont->CreateFont CXX0017: 错误: 没有找到符号“m_pFont”
没有字体变量m_pFont,所以创建就不成功了!! 不过为什么创建不成功呢?
命名在类成员里声明了啊!怎样解决这个问题?
因为是想得到窗体里的字体,所以在类里声明了,如果弄成临时变量的话,怎么能够得到窗体的值呢?
#1
GetLogFont 这个是给系统自己调用的么
#2
HFONT hFont = (HFONT)GetStockObject(SYSTEM_FONT);
ASSERT(hFont);//看这里是否成功?
ASSERT(hFont);//看这里是否成功?
#3
让m_pFont声明成临时变量,不要是类成员变量或者static变量,试试
#4
#5
m_pFont->CreateFont 失败
看看返回值,如果失败调用GetLastError()查看错误信息
看看返回值,如果失败调用GetLastError()查看错误信息
#6
1.你用的字体变量是否引用对了?
2。CreateFont 是否建立成功
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)写了
请大侠指导
我是这样写的
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
不成功!?
#10
用了你给你的代码 还是不好用啊
#11
帮顶了~~一起学习~
#12
感谢帮顶了!!!
#13
提示 m_pFont->CreateFont CXX0017: 错误: 没有找到符号“m_pFont”
没有字体变量m_pFont,所以创建就不成功了!! 不过为什么创建不成功呢?
命名在类成员里声明了啊!怎样解决这个问题?
因为是想得到窗体里的字体,所以在类里声明了,如果弄成临时变量的话,怎么能够得到窗体的值呢?