快捷键

快捷键

代码:#include <afxwin.h>
#include "resource.h"


class MyFrameWindow:public CFrameWnd
{
public:
 CBitmap* MenuBitmap;//创建指向位图类的指针对象
 
 
 virtual BOOL PreCreateWindow(CREATESTRUCT&cs);//在此函数中修改建立窗口的参数
 afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);//相应系统的WM_CREATE消息响应函数
 afx_msg void OnRButtonUp(UINT nFlags,CPoint point);//鼠标右键松开系统响应函数
 
 afx_msg void CmFileOpen(void){MessageBox("Open a file!","Your Command");}//菜单键FILE|OPEN响应函数
 
 DECLARE_MESSAGE_MAP(); //生命消息映射表
};
//消息映射表
BEGIN_MESSAGE_MAP(MyFrameWindow,CFrameWnd)
ON_WM_CREATE()
ON_WM_RBUTTONUP()

ON_COMMAND(ID_FILE_OPEN,CmFileOpen)
END_MESSAGE_MAP()

BOOL MyFrameWindow::PreCreateWindow(CREATESTRUCT&cs)
{
 cs.hMenu=LoadMenu(NULL,MAKEINTRESOURCE (IDR_MENU1));//载入MENU资源并指定它为窗口的主菜单
 return CFrameWnd::PreCreateWindow(cs);//设置主窗口
}
int MyFrameWindow::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
 CMenu *MainMenu,*SystemMenu,*SubMenu;//建立主菜单指针,系统菜单,和子菜单指针
 if(CFrameWnd::OnCreate(lpCreateStruct))
  return -1;
 SystemMenu=GetSystemMenu(FALSE);//用GetSystemMenu函数取得系统菜单的指针
 SystemMenu->AppendMenu(MF_SEPARATOR);//添加分隔线
 SystemMenu->AppendMenu(MF_STRING,0,"This item is inserted by the programmer");//添加字符串
 
 MenuBitmap=new CBitmap;//创建位图对象
 MenuBitmap->LoadBitmap(IDB_BITMAP2);//载入位图资源
 
 LoadAccelTable(MAKEINTRESOURCE(IDR_ACCELERATOR1));//载入快捷键表
 
 MainMenu=GetMenu();//取得主菜单指针
 SubMenu=MainMenu->GetSubMenu(0);//取得子菜单指针
 SubMenu->AppendMenu(MF_BITMAP,IDB_BITMAP2,MenuBitmap);//添加位图参数为(标志,位图ID,位图指针)
 return 0;
 
}
void MyFrameWindow::OnRButtonUp(UINT nFlags,CPoint point)
{
 CMenu Popup,SubMenu;//创建弹出菜单和子菜单对象
 
 CFrameWnd::OnRButtonUp(nFlags,point);
 
 ClientToScreen(&point);//将客户区坐标转换为主屏幕坐标
 Popup.CreatePopupMenu();//建立弹出菜单
 SubMenu.LoadMenu(IDR_POPUP);//载入弹出子菜单
 
 Popup.AppendMenu(MF_STRING,IDR_MENU2,"File");
 
 Popup.AppendMenu(MF_POPUP,(UINT)SubMenu.m_hMenu,"Edit");
 
 
 
 Popup.AppendMenu(MF_STRING,IDR_MENU2+1,"search");
 Popup.AppendMenu(MF_SEPARATOR);
 Popup.AppendMenu(MF_STRING,IDR_MENU2+2,"E&xit");
 Popup.TrackPopupMenu(TPM_CENTERALIGN,point.x,point.y,this);//显示弹出菜单
 
}

//应用程序类
class MyApp:public CWinApp
{
public:
 BOOL InitInstance()
 {
  CFrameWnd *MyFrame=new MyFrameWindow;//产生主窗口对象
  m_pMainWnd=MyFrame;
  MyFrame->Create(NULL,"");//建立主窗口
  MyFrame->ShowWindow(SW_SHOW);//显示主窗口
  return TRUE;
 }
}MenuShow;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值