本打算在对话框上做一个CListCtrl,对其中数据进行操作,
在做完后,发现点对话框上的叉号按钮无法退出,而是对控件中的记录进行删除,
后来添加退出按钮,按钮响应函数里面放了 SendMessage(WM_DESTROY,0,0); 也没有反应
请问一下,这是为什么啊?
在做完后,发现点对话框上的叉号按钮无法退出,而是对控件中的记录进行删除,
后来添加退出按钮,按钮响应函数里面放了 SendMessage(WM_DESTROY,0,0); 也没有反应
请问一下,这是为什么啊?
我怎么也不明白为什么叉号按钮在调用删除CListCtrl中内容的函数,void CUserAdmin::OnDestroy()
{ MessageBox("aa");
CDialog::OnDestroy();
// TODO: Add your message handler code here
}
{
// MessageBox("ready to delete.");
if (nPos!=-1)
OnMenuitemDelete() ;
else MessageBox("请选择要删除得项..");}
对关闭对话框的消息都没有处理,也没有重载各种函数,怎么会调用这个函数呢
_AfxDispatchCmdMsg(CCmdTarget * 0x0012f87c {CUserAdmin hWnd=0x000a0b1a}, unsigned int 2, int 0, void (void)* 0x004010be CUserAdmin::OnButtonDelete1(void), void * 0x00000000, unsigned int 12, AFX_CMDHANDLERINFO * 0x00000000) line 88
CCmdTarget::OnCmdMsg(unsigned int 2, int 0, void * 0x00000000, AFX_CMDHANDLERINFO * 0x00000000) line 302 + 39 bytes
CDialog::OnCmdMsg(unsigned int 2, int 0, void * 0x00000000, AFX_CMDHANDLERINFO * 0x00000000) line 97 + 24 bytes
CWnd::OnCommand(unsigned int 2, long 592700) line 2099
CWnd::OnWndMsg(unsigned int 273, unsigned int 2, long 592700, long * 0x0012f598) line 1608 + 28 bytes
CWnd::WindowProc(unsigned int 273, unsigned int 2, long 592700) line 1596 + 30 bytes
AfxCallWndProc(CWnd * 0x0012f87c {CUserAdmin hWnd=0x000a0b1a}, HWND__ * 0x000a0b1a, unsigned int 273, unsigned int 2, long 592700) line 215 + 26 bytes
AfxWndProc(HWND__ * 0x000a0b1a, unsigned int 273, unsigned int 2, long 592700) line 379
AfxWndProcBase(HWND__ * 0x000a0b1a, unsigned int 273, unsigned int 2, long 592700) line 220 + 21 bytes
USER32! 77d18734()
USER32! 77d18816()
USER32! 77d189cd()
USER32! 77d196c7()
CWinThread::PumpMessage() line 853
CWnd::RunModalLoop(unsigned long 4) line 3489 + 19 bytes
CDialog::DoModal() line 539 + 12 bytes
CDatabaseBackupClientDlg::OnMenuitemUser() line 256
_AfxDispatchCmdMsg(CCmdTarget * 0x0012fe60 {CDatabaseBackupClientDlg hWnd=0x00100a70}, unsigned int 32774, int 0, void (void)* 0x004011f9 CDatabaseBackupClientDlg::OnMenuitemUser(void), void * 0x00000000, unsigned int 12, AFX_CMDHANDLERINFO * 0x00000000) line 88
CCmdTarget::OnCmdMsg(unsigned int 32774, int 0, void * 0x00000000, AFX_CMDHANDLERINFO * 0x00000000) line 302 + 39 bytes
CDialog::OnCmdMsg(unsigned int 32774, int 0, void * 0x00000000, AFX_CMDHANDLERINFO * 0x00000000) line 97 + 24 bytes
CWnd::OnCommand(unsigned int 32774, long 0) line 2099
CWnd::OnWndMsg(unsigned int 273, unsigned int 32774, long 0, long * 0x0012fb74) line 1608 + 28 bytes
CWnd::WindowProc(unsigned int 273, unsigned int 32774, long 0) line 1596 + 30 bytes
AfxCallWndProc(CWnd * 0x0012fe60 {CDatabaseBackupClientDlg hWnd=0x00100a70}, HWND__ * 0x00100a70, unsigned int 273, unsigned int 32774, long 0) line 215 + 26 bytes
AfxWndProc(HWND__ * 0x00100a70, unsigned int 273, unsigned int 32774, long 0) line 379
AfxWndProcBase(HWND__ * 0x00100a70, unsigned int 273, unsigned int 32774, long 0) line 220 + 21 bytes
USER32! 77d18734()
USER32! 77d18816()
USER32! 77d189cd()
USER32! 77d196c7()
CWinThread::PumpMessage() line 853
CWnd::RunModalLoop(unsigned long 4) line 3489 + 19 bytes
CDialog::DoModal() line 539 + 12 bytes
CDatabaseBackupClientApp::InitInstance() line 59 + 11 bytes
AfxWinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00141f39, int 1) line 39 + 11 bytes
WinMain(HINSTANCE__ * 0x00400000, HINSTANCE__ * 0x00000000, char * 0x00141f39, int 1) line 30
WinMainCRTStartup() line 330 + 54 bytes
KERNEL32! 7c816fd7()
也贴出来,如果不行的话就换另外一种方式,不一定就死要那种方法。
响应他的函数
void CMainFrame::OnClose()
{
// TODO: Add your message handler code here and/or call default
MessageBox("111");
CFrameWnd::OnClose();
}就可以解决你的问题了