Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.024 c
6-1098136169
Mbox
2004-10-19 01:49
2005.01.09
Максимальное количество соединений с веб-сервером


1-1103609939
DDDeN
2004-12-21 09:18
2005.01.09
Перезаписать используемый другой прогой файл


4-1100702417
markers
2004-11-17 17:40
2005.01.09
Активность окна


14-1103632846
juice
2004-12-21 15:40
2005.01.09
DelphiWorld


11-1084528305
dimon1979
2004-05-14 13:51
2005.01.09
Табуляция




   Наверх