void CMyDialog::OnBnClickedOk()
{
::MessageBox(this->m_hWnd, _T("Hello World"), _T("Hello World"), MB_OK);
OnOK();
}
Hello world (Windows application) MFC
Создается окошко с кнопочкой "Привет мир" и при нажатии выскакивает предупреждение с текстом "Привет мир" при нажатии которая закрывает это предупреждение :)
Создаю таким образом:
1. Новый проект, Windows application
2. Проект создаю пустым.
3. Подключаю MFC static library
Спасибо за помощь! :)
Что-то я совсем не понял, что нужно.
Самая первая программка в VS 2008 по традиции Hello world, собственно хотелось увидеть как ее сделать. В инете по 2008 VS ничего не нашел :(
Код:
Цитата: Ayvengo
Самая первая программка в VS 2008 по традиции Hello world, собственно хотелось увидеть как ее сделать. В инете по 2008 VS ничего не нашел :(
Во-первых, видимо плохо искали. Во-вторых, по-моему, Hello World на MFC со времен еще наверное vs6 не изменился, так что ищете любой материал по MFC.
prog.cpp
Код:
#include <afxwin.h>
class CMyFrame : public CFrameWnd
{
CButton *m_Btn;
protected:
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
public:
CMyFrame();
};
class CMyApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};
CMyApp theApp;
CMyFrame::CMyFrame()
{
Create(
AfxRegisterWndClass(
CS_DBLCLKS,
LoadCursor(0, IDC_ARROW),
(HBRUSH) GetStockObject(LTGRAY_BRUSH)),
_T("Мой фрейм"));
m_Btn = new CButton();
m_Btn->Create(_T("Нажми меня"), WS_VISIBLE | WS_CHILD,
CRect(150, 150, 150+100, 150+25), this, 1001);
}
BOOL CMyApp::InitInstance()
{
m_pMainWnd = new CMyFrame();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return CWinApp::InitInstance();
}
BOOL CMyFrame::OnCommand(WPARAM wParam, LPARAM lParam)
{
if (wParam == 1001)
{
AfxMessageBox(_T("Да HelloWorld уже наконец!"));
return TRUE;
}
return CFrameWnd::OnCommand(wParam, lParam);
}
class CMyFrame : public CFrameWnd
{
CButton *m_Btn;
protected:
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
public:
CMyFrame();
};
class CMyApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};
CMyApp theApp;
CMyFrame::CMyFrame()
{
Create(
AfxRegisterWndClass(
CS_DBLCLKS,
LoadCursor(0, IDC_ARROW),
(HBRUSH) GetStockObject(LTGRAY_BRUSH)),
_T("Мой фрейм"));
m_Btn = new CButton();
m_Btn->Create(_T("Нажми меня"), WS_VISIBLE | WS_CHILD,
CRect(150, 150, 150+100, 150+25), this, 1001);
}
BOOL CMyApp::InitInstance()
{
m_pMainWnd = new CMyFrame();
m_pMainWnd->ShowWindow(m_nCmdShow);
m_pMainWnd->UpdateWindow();
return CWinApp::InitInstance();
}
BOOL CMyFrame::OnCommand(WPARAM wParam, LPARAM lParam)
{
if (wParam == 1001)
{
AfxMessageBox(_T("Да HelloWorld уже наконец!"));
return TRUE;
}
return CFrameWnd::OnCommand(wParam, lParam);
}
с MFC я не очень, знаю что кнопку не удаляю, остальные ошибки, если есть - толковый народ скажет. Но работает и вроде так как вам того хочется. Имхо, с точки зрения MFC этот код ужасен :)