您的位置:程序门 -> vc/mfc -> 界面



树控件和右键点击弹出菜单的问题!


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


树控件和右键点击弹出菜单的问题![已结贴,结贴人:nc_yellow]
发表于:2007-06-02 12:30:58 楼主
我在mainframe中建立了树控件m_wndtree,现在想实现一个功能:用右键点击结点,弹出菜单,高手多多指教啊   !
发表于:2007-06-02 13:55:021楼 得分:10
先做好菜单,然后参照如下
void   cmytreeview::onrbuttondown(uint   nflags,   cpoint   point)
{
//   todo:   在此添加消息处理程序代码和/或调用默认值
        cpoint   cursorpos;
        getcursorpos(&cursorpos);
ctreectrl&   ctltree=(ctreectrl&)gettreectrl   ();
htreeitem   selitem=ctltree.getselecteditem();

if(selitem==null)
return;

cmenu   *mhandmenu;
mhandmenu=new   cmenu();
mhandmenu-> loadmenu(idr_popmenu);

        mhandmenu-> getsubmenu(0)-> trackpopupmenu   (tpm_leftalign,cursorpos.x   ,cursorpos.y   ,this);

ctreeview::onrbuttondown(nflags,   point);
}
发表于:2007-06-02 14:15:472楼 得分:0
我的树控件是在mainframe的oncreate()中创建的啊,定义了ctreectrl   m_wndtree;
没有用资源中的树控件
发表于:2007-06-02 14:33:483楼 得分:20
派生一个新的类cmytree,让它继成于ctreectrl
void   cmytree::onrclick(nmhdr*   pnmhdr,   lresult*   presult)  
{
cmenu     menu   ;
cmenu*   psubmenu;
menu.loadmenu(idr_tree_menu);

cpoint   point;
uint   uflags;
getcursorpos(&point);
screentoclient(&point);
  htreeitem   hitem   =   hittest(point,   &uflags);
  selectitem(hitem);

htreeitem   hselected   =   this-> getselecteditem();
clienttoscreen(&point);
psubmenu   =   menu.getsubmenu(1);
psubmenu-> trackpopupmenu(tpm_leftalign,   point.x,   point.y,   this,   null);

*presult   =   0;
}
在mainframe中定义树控件为cmytree   m_wndtree
就可以实现右键点击结点,弹出菜单的功能了


快速检索

最新资讯
热门点击