CreateMenu和CreatePopupMenu都是用来创建菜单,都可以用AppendMenuInsertMenu 向其中添加菜单。

两者的不同点在于使用TrackPopupMenu 上:

例:

 

CMenu menu;

menu.CreateMenu();menu.AppendMenu(MF_STRING, 23423, _T("sdfwef"));

menu.AppendMenu(MF_STRING, 23423, _T("sdfwef2"));

menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);

 

用以上代码时显示如下:


 

CMenu menu;

menu.CreatePopupMenu();

menu.AppendMenu(MF_STRING, 23423, _T("sdfwef"));

menu.AppendMenu(MF_STRING, 23423, _T("sdfwef2"));

menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);

 

用以上代码时显示如下:


 

所以用CreateMenu 和 CreatePopupMenu的区别在于,CreatePopupMenu创建的菜单能够使用TrackPopupMenu函数,而CreateMenu创建的菜单不能。