Форум: "Потрепаться";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
ВнизВопрос по VC++ Найти похожие ветки
← →
Шишкин Илья © (2004-12-16 17:46) [0]Решил изучить VC++.Попытался написать однодокументное приложение. Возникла проблема - не могу программно выйти из приложения. Хочу сделать выход при нажатии клавишы "Q". Использовал OnDestroy(), но никакого эффекта это не дало. Прошу помочь.
#include "afxwin.h"
#include "resource.h"
class CMyView : public CView
{
protected:
CMyView();
DECLARE_DYNCREATE(CMyView)
public:
virtual void OnDraw(CDC* pDC);
afx_msg void OnChar(UINT ch, UINT, UINT);
afx_msg void OnRButtonDown(UINT flags, CPoint Loc);
DECLARE_MESSAGE_MAP();
};
void CMyView::OnDraw(CDC* pDC)
{
}
BEGIN_MESSAGE_MAP(CMyView, CView)
ON_WM_CHAR()
ON_WM_RBUTTONDOWN()
END_MESSAGE_MAP()
afx_msg void CMyView::OnChar(UINT ch, UINT, UINT)
{
if (ch=="q") AfxMessageBox("Exit",MB_OK);
}
afx_msg void CMyView::OnRButtonDown(UINT, CPoint loc)
{
AfxMessageBox("OnRButtonDown",MB_OK);
}
IMPLEMENT_DYNCREATE(CMyView, CView)
CMyView::CMyView()
{
}
class CMyFrameWnd : public CFrameWnd
{
protected:
CMyFrameWnd();
DECLARE_DYNCREATE(CMyFrameWnd)
public:
};
IMPLEMENT_DYNCREATE(CMyFrameWnd, CFrameWnd)
CMyFrameWnd::CMyFrameWnd()
{
}
class CMyDocument : public CDocument
{
protected:
CMyDocument();
DECLARE_DYNCREATE(CMyDocument)
public:
};
IMPLEMENT_DYNCREATE(CMyDocument,CDocument)
CMyDocument::CMyDocument()
{
}
class CMyWinApp : public CWinApp
{
public:
CMyWinApp();
virtual BOOL InitInstance();
DECLARE_MESSAGE_MAP();
};
BEGIN_MESSAGE_MAP(CMyWinApp, CWinApp)
END_MESSAGE_MAP()
BOOL CMyWinApp::InitInstance()
{
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,
RUNTIME_CLASS(CMyDocument),
RUNTIME_CLASS(CMyFrameWnd),
RUNTIME_CLASS(CMyView));
AddDocTemplate(pDocTemplate);
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
if (!ProcessShellCommand(cmdInfo))
return FALSE;
m_pMainWnd->ShowWindow(SW_SHOW);
m_pMainWnd->UpdateWindow();
return TRUE;
}
CMyWinApp::CMyWinApp()
{
}
CMyWinApp theApp;
← →
pusrg (2004-12-16 18:43) [1]Что не нашел я в твоем коде вызов OnDestroy().
А вообще не парся, а посылай WM_QUIT главному окну или вызывай PostQuitMessage, что в принципе идентично. Например:
afx_msg void CMyView::OnChar(UINT ch, UINT, UINT)
{
if (ch=="q")
{
AfxMessageBox("Exit",MB_OK);
PostQuitMessage(0);
}
}
← →
Igorek © (2004-12-16 19:59) [2]Гы, предлогаю открыть раздел "Потрепацца о С++" :-)
← →
марсианин © (2004-12-16 23:53) [3]мне тоже приходила такая мысль :)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.033 c