一、.弹出式菜单的快速制作
步骤1:菜单资源的添加
由于是制作弹出式菜单,所以你可能会采用View as Popup的方式来添加一个弹出式菜单,这里不建议这么做,直接采用默认的编辑方式如下图
步骤2:选择事件
若视图类中添加则选择在WM_CONTEXTMENU消息中定义实现,若其他控件可以选择右键等,看具体情况而定了,自己发挥了。
步骤3:具体代码如下
CMenu menu;
menu.LoadMenu(IDR_FILE_LIST);
menu.GetSubMenu(0)->EnableMenuItem(ID_ADD_FILE,MF_BYCOMMAND | MF_DISABLED | MF_GRAYED );
////上面的语句只是个菜单项变灰并不使能例子,你可以在这里做一些菜单弹出时的初始化
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN,ptPos.x,ptPos.y,this);
由于采用GetSubMenu(0)的形式你可以吧系统的所有弹出式菜单都在一个菜单资源中完成了,方便管理。
二、.用户自定义消息的加入
自定义消息的加入需要四个地方添加代码,例子代码如下,一条语句一个地方哦,别搞错
#define WM_USER_ADD WM_USER+1//这个简单自己想了
ON_MESSAGE(WM_USER_ADD,OnAdd)//CPP文件中的消息映射表BEGIN_MESSAGE_MAP以下
afx_msg void OnAdd( WPARAM wParam, LPARAM lParam );//CPP对应的.H中,自己找一下类似的地方
void CXXXView::OnAdd( WPARAM wParam, LPARAM lParam ){}//这个实现了,肯定知道吧
好了这样就可以使用SendMessage()来发个消息,就执行相应的代码了。
更多的待续