
二、编辑菜单资源
1、添加菜单按“Ctrl+R”,双击“Menu”图标
2、于菜单编辑器内编辑菜单
四、添加代码(红色部分)
void CCMenuView::OnUpdateShow(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
MessageBox(“右键d出菜单测试!“)
}
void CCMenuView::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CMenu menu
menu.LoadMenu(IDR_MENU1)
CMenu *pPopup=menu.GetSubMenu(0)
ClientToScreen(&point)
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y,
this)
CView::OnRButtonDown(nFlags, point)
}
五、编译
七、函数说明
CMenu::TrackPopupMenu函数声明
BOOL TrackPopupMenu(UINT nFlags,int x,int y,CWnd*pWnd,LPCRECT LPrECT=0)
nFlags:d出菜单的位置
x:d出菜单的水平位置
y:d出菜单的垂直位置
pWnd:d出菜单的所有者
lpRect:一包含矩形坐标的RECT结构体指针。
功能:显示一d出菜单。函数调用成功,返回非零值;否则返回零。
CreateMenu的函数放在WinMain函数里面就可以了啊int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow){
MSG Msg
WNDCLASS wndclass
HWND hwnd
char lpszClassName[]="我的窗口"
char lpszTitle[]="MyWindows"
char lpszMenuName[]="menu"
hmenu=CreateMenu()
AppendMenu(hmenu,MF_ENABLED,IDM_OPENBIG,"打开目标图像")
AppendMenu(hmenu,MF_ENABLED,IDM_OPENSMALL,"打开模板图像")
AppendMenu(hmenu,MF_ENABLED,IDM_EXIT,"退出")
wndclass.style=0
wndclass.lpfnWndProc=WndProc
wndclass.cbClsExtra=0//窗口类无扩展
wndclass.cbWndExtra=0//窗口实例无扩展
wndclass.hInstance=hInstance//当前实例句柄
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION)//窗口的最小化图标为默认值
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW)
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH)
wndclass.lpszMenuName=lpszMenuName
wndclass.lpszClassName=lpszClassName
if(!RegisterClass(&wndclass)){
MessageBeep(0)
return false
}
//创建窗口
hwnd=CreateWindow(
lpszClassName,
lpszTitle,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
hmenu,
hInstance,
NULL
)
ShowWindow(hwnd,nCmdShow)
UpdateWindow(hwnd)
while(GetMessage(&Msg,NULL,0,0)){
TranslateMessage(&Msg)
DispatchMessage(&Msg)
}
return Msg.wParam
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)