MFC 菜单

//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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值