Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.09;
Скачать: CL | DM;

Вниз

Вопрос по 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.039 c
14-1103617210
07BB:080Dh
2004-12-21 11:20
2005.01.09
"Свобода слова" - что это такое?


3-1102591337
Ivan_
2004-12-09 14:22
2005.01.09
Null в select-e


4-1100913538
webmaster
2004-11-20 04:18
2005.01.09
Клавиша Windows на клавиатуре


14-1103645631
SergP.
2004-12-21 19:13
2005.01.09
Formula One F1Book


1-1103719374
kaktus
2004-12-22 15:42
2005.01.09
Очистка буфера обмена.