//Test.h
#ifndef TEST_H
#define TEST_H
#include <afxwin.h>
#define IDM_CPPGOOD 0X0001
#define IDM_CPPBAD 0X0002
#define IDM_JAVAGOOD 0X0003
#define IDM_JAVABAD 0X0004
#define IDM_HELLO 0X0005
#define IDB_BITMAP1 101
class CTestApp:public CWinApp
{
public:
virtual BOOL InitInstance();
};
class CTestWnd:public CFrameWnd
{
public:
CTestWnd();
afx_msg void OnCppGood();
afx_msg void OnCppBad();
afx_msg void OnJavaGood();
afx_msg void OnJavaBad();
afx_msg void OnSysCommand(UINT nID,LPARAM lParam);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
private:
CBitmap m_bitmap;
DECLARE_MESSAGE_MAP()
};
#endif
//Test.cpp
#include "Test.h"
CTestApp theApp;
BOOL CTestApp::InitInstance()
{
this->m_pMainWnd=new CTestWnd();
this->m_pMainWnd->ShowWindow(this->m_nCmdShow);
this->m_pMainWnd->UpdateWindow();
return TRUE;
}
BEGIN_MESSAGE_MAP(CTestWnd,CFrameWnd)
ON_COMMAND(IDM_CPPGOOD,OnCppGood)
ON_COMMAND(IDM_CPPBAD,OnCppBad)
ON_COMMAND(IDM_JAVAGOOD,OnJavaGood)
ON_COMMAND(IDM_JAVABAD,OnJavaBad)
ON_WM_SYSCOMMAND()
ON_WM_CREATE()
END_MESSAGE_MAP()
CTestWnd::CTestWnd()
{
this->Create(NULL,_T("Test"));
}
void CTestWnd::OnCppGood()
{
this->MessageBox(_T("C++能够直接控制硬件,运行速度快,代码的书写比C容易。"));
}
void CTestWnd::OnCppBad()
{
this->MessageBox(_T("C++的语法复杂,容易引入Debug。"));
}
void CTestWnd::OnJavaGood()
{
this->MessageBox(_T("Java的语法简单,一次编译,处处运行,拥有完善的反射机制。"));
}
void CTestWnd::OnJavaBad()
{
this->MessageBox(_T("Java程序的运行速度慢,不能直接控制硬件。"));
}
void CTestWnd::OnSysCommand(UINT nID,LPARAM lParam)
{
if(nID==IDM_HELLO)
{
this->MessageBox(_T("Hello"));
return;
}
CFrameWnd::OnSysCommand(nID,lParam);
}
int CTestWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if(-1==CFrameWnd::OnCreate(lpCreateStruct))return -1;
CMenu menuMain;
menuMain.CreateMenu();
CMenu menuPopup;
menuPopup.CreatePopupMenu();
menuPopup.AppendMenu(MF_STRING,IDM_CPPGOOD,_T("Good"));
menuPopup.AppendMenu(MF_STRING,IDM_CPPBAD,_T("BAD"));
menuMain.AppendMenu(MF_POPUP,reinterpret_cast<UINT>(menuPopup.Detach()),_T("C++"));
menuPopup.CreatePopupMenu();
menuPopup.AppendMenu(MF_STRING,IDM_JAVAGOOD,_T("GOOD"));
menuPopup.AppendMenu(MF_STRING,IDM_JAVABAD,_T("BAD"));
menuMain.AppendMenu(MF_POPUP,reinterpret_cast<UINT>(menuPopup.Detach()),_T("Java"));
this->SetMenu(&menuMain);
menuMain.Detach();
this->GetSystemMenu(FALSE)->AppendMenu(MF_STRING,IDM_HELLO,_T("Hello"));
return 0;
}