Главная страница
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.048 c
14-1103687945
Чеширский_Кот
2004-12-22 06:59
2005.01.09
Нет ничего хуже ремонта!


8-1096551619
Yustas
2004-09-30 17:40
2005.01.09
Меню во Flash


1-1103820846
UVV
2004-12-23 19:54
2005.01.09
Посоветуйте компоненты для работы с отчётами! Open Source


3-1102596992
galexis
2004-12-09 15:56
2005.01.09
Сколько записей в DBGrid?


14-1103632314
Новенький
2004-12-21 15:31
2005.01.09
Задачи