我正在编写一个 MFC 应用程序,并创建了一个CStatusBarPane
公开派生自CMFCRibbonStatusPane
. 这个派生类包含一个简单的方法,如下所示:
virtual void SetStatusIcon( _In_ HICON hIcon )
{
m_hIconSmall = hIcon;
Redraw();
}
创建主框架后(连同状态栏及其子窗格),我调用以下函数:
void CMainFrame::UpdateStatusBar( _In_ const std::tstring& szStatus, _In_opt_ HICON hIcon )
{
CStatusBarPane* pStatusBarPane = static_cast<CStatusBarPane*>(m_wndStatusBar.GetElement(0));
pStatusBarPane->SetText( szStatus.c_str() );
pStatusBarPane->SetStatusIcon( hIcon );
}
pStatusBarPane->SetStatusIcon( hIcon )
但是,当我调试应用程序时,它会使用以下语句引发异常:
Project.exe 中 0x00000000 处的第一次机会异常:0xC0000005:访问冲突执行位置 0x00000000。
但是,查看变量跟踪表明没有空指针被访问,所以我不明白如何在地址 0 处发生访问冲突?
提前致谢!