Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
9-1095658408
Cobalt
2004-09-20 09:33
2005.01.09
Переключение между программами


1-1103182665
PEKAHT
2004-12-16 10:37
2005.01.09
DDE


14-1102886151
Piter
2004-12-13 00:15
2005.01.09
Посоветуйте насчет Wi-FI


1-1103648451
Dan
2004-12-21 20:00
2005.01.09
Как отловить событие перемещения формы.


14-1103322939
Германн
2004-12-18 01:35
2005.01.09
Русская раскладка в МС-ДОС в WinXP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский