I am using MFC in Visual Studio 2005.
I had added a list control in my dialog and set the view property as "Icon". I declared the ImageList in the OnInitDialog of the dialog where the listview is displayed. The dialog is supposed to open when I clicked a button from the main dialog. However, I keep on getting this problem which I guess is due to the hWnd = 0x00000000.
m_ListView {CListCtrl hWnd=0x00000000} CListCtrl
Part of my code:
BOOL CSoccerControl::OnInitDialog()
{
CDialog::OnInitDialog();
.
.
.
m_pImageList = new CImageList(); //I had declared m_pImageList in the header file using CImageList *m_pImageList;
//Create, initialize, and hook up image list
m_pImageList->Create(32,32,TRUE,1,1);
m_pImageList->Add(AfxGetApp()->LoadIconA(IDI_TEST));
this->m_ListView.SetImageList(m_pImageList, LVSIL_NORMAL);
return TRUE;
}
Compiler shows problem occurs here:
{ ASSERT(::IsWindow(m_hWnd)); return CImageList::FromHandle((HIMAGELIST)
::SendMessage(m_hWnd, LVM_SETIMAGELIST, nImageList, (LPARAM)pImageList->GetSafeHandle())); }
From the call stack:
mfc80d.dll!CListCtrl::SetImageList(CImageList * pImageList=0x0035b250, int nImageList=0) Line 138 + 0x2b bytes C++
Humanoid_GUI.exe!CSoccerControl::OnInitDialog() Line 136 C++
mfc80d.dll!AfxDlgProc(HWND__ * hWnd=0x000e0218, unsigned int message=272, unsigned int __formal=786840, unsigned int __formal=786840) Line 28 + 0x10 bytes C++
user32.dll!7e418734()
[Frames below may be incorrect and/or missing, no symbols loaded for user32.dll]
user32.dll!7e423b9c()
user32.dll!7e423591()
user32.dll!7e43e53f()
user32.dll!7e4184fc()
user32.dll!7e4185a4()
user32.dll!7e43e561()
user32.dll!7e418734()
user32.dll!7e43e53f()
user32.dll!7e43e53f()
user32.dll!7e418816()
user32.dll!7e43e53f()
user32.dll!7e43e53f()
ntdll.dll!7c912c99()
user32.dll!7e41c63f()
user32.dll!7e43e53f()
user32.dll!7e41f65d()
user32.dll!7e43e53f()
mfc80d.dll!CWnd::DefWindowProcA(unsigned int nMsg=272, unsigned int wParam=786840, long lParam=0) Line 1029 + 0x20 bytes C++
mfc80d.dll!CWnd::Default() Line 274 C++
mfc80d.dll!CDialog::HandleInitDialog(unsigned int __formal=786840, unsigned int __formal=786840) Line 633 + 0x8 bytes C++
mfc80d.dll!CWnd::OnWndMsg(unsigned int message=272, unsigned int wParam=786840, long lParam=0, long * pResult=0x0012f070) Line 2004 + 0x11 bytes C++
mfc80d.dll!CWnd::WindowProc(unsigned int message=272, unsigned int wParam=786840, long lParam=0) Line 1741 + 0x20 bytes C++
mfc80d.dll!AfxCallWndProc(CWnd * pWnd=0x0035a910, HWND__ * hWnd=0x000e0218, unsigned int nMsg=272, unsigned int wParam=786840, long lParam=0) Line 240 + 0x1c bytes C++
mfc80d.dll!AfxWndProc(HWND__ * hWnd=0x000e0218, unsigned int nMsg=272, unsigned int wParam=786840, long lParam=0) Line 389 C++
mfc80d.dll!AfxWndProcBase(HWND__ * hWnd=0x000e0218, unsigned int nMsg=272, unsigned int wParam=786840, long lParam=0) Line 407 + 0x15 bytes C++
user32.dll!7e418734()
user32.dll!7e418816()
user32.dll!7e41b89b()
user32.dll!7e4243e0()
user32.dll!7e424704()
user32.dll!7e439b0b()
mfc80d.dll!CWnd::CreateDlgIndirect(const DLGTEMPLATE * lpDialogTemplate=0x00a6a160, CWnd * pParentWnd=0x0012fe3c, HINSTANCE__ * hInst=0x00400000) Line 307 + 0x2a bytes C++
mfc80d.dll!CDialog::DoModal() Line 536 + 0x20 bytes C++
Humanoid_GUI.exe!CHumanoid_GUIDlg::OnBnClickedButt onSoccer() Line 264 + 0x12 bytes C++
mfc80d.dll!_AfxDispatchCmdMsg(CCmdTarget * pTarget=0x0012fe3c, unsigned int nID=1006, int nCode=0, void (void)* pfn=0x00425541, void * pExtra=0x00000000, unsigned int nSig=56, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000) Line 82 C++
mfc80d.dll!CCmdTarget::OnCmdMsg(unsigned int nID=1006, int nCode=0, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000) Line 381 + 0x27 bytes C++
mfc80d.dll!CDialog::OnCmdMsg(unsigned int nID=1006, int nCode=0, void * pExtra=0x00000000, AFX_CMDHANDLERINFO * pHandlerInfo=0x00000000) Line 85 + 0x18 bytes C++
mfc80d.dll!CWnd::OnCommand(unsigned int wParam=1006, long lParam=1048948) Line 2300 C++
mfc80d.dll!CWnd::OnWndMsg(unsigned int message=273, unsigned int wParam=1006, long lParam=1048948, long * pResult=0x0012f800) Line 1755 + 0x1e bytes C++
mfc80d.dll!CWnd::WindowProc(unsigned int message=273, unsigned int wParam=1006, long lParam=1048948) Line 1741 + 0x20 bytes C++
mfc80d.dll!AfxCallWndProc(CWnd * pWnd=0x0012fe3c, HWND__ * hWnd=0x000e020e, unsigned int nMsg=273, unsigned int wParam=1006, long lParam=1048948) Line 240 + 0x1c bytes C++
mfc80d.dll!AfxWndProc(HWND__ * hWnd=0x000e020e, unsigned int nMsg=273, unsigned int wParam=1006, long lParam=1048948) Line 389 C++
mfc80d.dll!AfxWndProcBase(HWND__ * hWnd=0x000e020e, unsigned int nMsg=273, unsigned int wParam=1006, long lParam=1048948) Line 407 + 0x15 bytes C++
user32.dll!7e418734()
user32.dll!7e418816()
user32.dll!7e41b4c0()
user32.dll!7e41b89b()
user32.dll!7e41b903()
user32.dll!7e44fd1d()
user32.dll!7e446561()
user32.dll!7e426df4()
mfc80d.dll!AfxGetThread() Line 137 + 0x5 bytes C++
mfc80d.dll!CWinThread::ProcessMessageFilter(int code=0, tagMSG * lpMsg=0x0003001d) Line 850 + 0x5 bytes C++
00000202()
user32.dll!7e43affe()
user32.dll!7e418734()
user32.dll!7e43affe()
user32.dll!7e43affe()
user32.dll!7e418816()
user32.dll!7e43affe()
user32.dll!7e41f805()
user32.dll!7e4189cd()
user32.dll!7e43affe()
user32.dll!7e431b3c()
user32.dll!7e418a10()
user32.dll!7e42d99d()
user32.dll!7e43c69b()
mfc80d.dll!CWnd::IsDialogMessageA(tagMSG * lpMsg=0x00154198) Line 198 C++
mfc80d.dll!CWnd::PreTranslateInput(tagMSG * lpMsg=0x00154198) Line 4268 C++
mfc80d.dll!CDialog::PreTranslateMessage(tagMSG * pMsg=0x00154198) Line 80 C++
mfc80d.dll!CWnd::WalkPreTranslateTree(HWND__ * hWndStop=0x000e020e, tagMSG * pMsg=0x00154198) Line 2882 + 0x14 bytes C++
mfc80d.dll!AfxInternalPreTranslateMessage(tagMSG * pMsg=0x00154198) Line 233 + 0x12 bytes C++
mfc80d.dll!CWinThread::PreTranslateMessage(tagMSG * pMsg=0x00154198) Line 773 + 0x9 bytes C++
mfc80d.dll!AfxPreTranslateMessage(tagMSG * pMsg=0x00154198) Line 252 + 0x11 bytes C++
mfc80d.dll!AfxInternalPumpMessage() Line 178 + 0x18 bytes C++
mfc80d.dll!CWinThread::PumpMessage() Line 896 C++
mfc80d.dll!AfxPumpMessage() Line 190 + 0xd bytes C++
mfc80d.dll!CWnd::RunModalLoop(unsigned long dwFlags=4) Line 4322 + 0x5 bytes C++
mfc80d.dll!CDialog::DoModal() Line 544 + 0xc bytes C++
Humanoid_GUI.exe!CHumanoid_GUIApp::InitInstance() Line 58 + 0xb bytes C++
mfc80d.dll!AfxWinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpCmdLine=0x00151f3f, int nCmdShow=1) Line 37 + 0xd bytes C++
Humanoid_GUI.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpCmdLine=0x00151f3f, int nCmdShow=1) Line 29 C++
Humanoid_GUI.exe!__tmainCRTStartup() Line 578 + 0x35 bytes C
Humanoid_GUI.exe!WinMainCRTStartup() Line 403 C
kernel32.dll!7c816fd7()
What should I do to avoid the problem?