找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1856|回复: 25

[ARX函数]:关于CAcUiDockControlBar类的

[复制链接]
发表于 2002-10-10 23:29:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
各位前辈,请教CAcUiDockControlBar中AddCustomMenuItems函数的用法,我试了几次,但总是将自己的定义的菜单加不进到右键的弹出菜单中,请指教,谢谢
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-10 23:35:40 | 显示全部楼层

Re: [ARX函数]:[ARX函数]:关于CAcUiDockControlBar类的

最初由 kfx2002 发布
[B]各位前辈,请教CAcUiDockControlBar中AddCustomMenuItems函数的用法,我试了几次,但总是将自己的定义的菜单加不进到右键的弹出菜单中,请指教,谢谢 [/B]


把你的代码贴到论坛来吧,方便大家分析。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-10-11 00:29:32 | 显示全部楼层
BOOL CPropertiyDlg::AddCustomMenuItems(LPARAM hMenu)
{
        CAcUiDockControlBar::AddCustomMenuItems(LPARAM hMenu);
}



                     CPropertiyDlg *g_pPropertiyDlg = NULL;
        CMDIFrameWnd *pAcadFrame = acedGetAcadFrame();
        if(!g_pPropertiyDlg)
        {
                g_pPropertiyDlg = new CPropertiyDlg;
                CAcModuleResourceOverride resOverride;
                const char dlgName[] = "属性";
                g_pPropertiyDlg->Create(pAcadFrame, dlgName);
        g_pPropertiyDlg->SetToolID (&clsIDControlBar);

                g_pPropertiyDlg->AddCustomMenuItems(????);
            g_pPropertiyDlg->EnableDocking(CBRS_ALIGN_LEFT | CBRS_ALIGN_RIGHT);
                g_pPropertiyDlg->DockControlBar( AFX_IDW_DOCKBAR_RIGHT,CRect(0,0,200,200));

在AddCustomMenuItems的参数中怎么还用回调?是不是为了处理菜单的消息?那实际的菜单资源怎么加入呢?困扰......也不知道那个AddCustomMenuItems的虚函数做什么用的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-11 01:35:11 | 显示全部楼层
最初由 kfx2002 发布
[B]BOOL CPropertiyDlg::AddCustomMenuItems(LPARAM hMenu)
{
        CAcUiDockControlBar::AddCustomMenuItems(LPARAM hMenu);
}



                     CPropertiyDlg *g_pPropertiyDlg = NULL;
        CMDIFrameWnd *p... [/B]


你看看下面的附件,里面有个关于CAcUiDockControlBar的一个完整的工程代码,你看看里面的,是否能对你有帮助。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-10-11 09:55:13 | 显示全部楼层
谢谢晓东,顺便还有一个问题,就是怎样才能赚更多的爱心币啊?俺太少了,连附件都下不了,呵呵
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-11 10:08:32 | 显示全部楼层
最初由 kfx2002 发布
[B]谢谢晓东,顺便还有一个问题,就是怎样才能赚更多的爱心币啊?俺太少了,连附件都下不了,呵呵 [/B]


去看看下面的帖子:

http://www.xdcad.net/forum/showthread.php?threadid=4224
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-10-11 11:48:12 | 显示全部楼层
好,看过了,还挺复杂的,看来俺以后得努力噢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-10-11 11:55:48 | 显示全部楼层
最初由 kfx2002 发布
[B]好,看过了,还挺复杂的,看来俺以后得努力噢! [/B]


规则很公平的,只要大家发了好的帖子,好的主题,即使几天不来,爱心币也会根据回复数,浏览数增加的。

还有,多传些完整的工具,工程代码用附件,有多少人下载,就会增加多少爱心币

此外还可以到“文章中心”提交文章等都可以获得。

斑竹根据发贴质量,还会额外奖励爱心币。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-10-11 13:20:48 | 显示全部楼层

Re: [ARX函数]:[ARX函数]:关于CAcUiDockControlBar类的

最初由 kfx2002 发布
各位前辈,请教CAcUiDockControlBar中AddCustomMenuItems函数的用法,我试了几次,但总是将自己的定义的菜单加不进到右键的弹出菜单中,请指教,谢谢

给你一段代码
MyDockBar.h

  1. //-----------------------------------------------------------------------------
  2. #if !defined(ARX__MYDOCKBAR_H__20020510_100826)
  3. #define ARX__MYDOCKBAR_H__20020510_100826

  4. //-----------------------------------------------------------------------------
  5. #if _MSC_VER > 1000
  6. #pragma once
  7. #endif // _MSC_VER > 1000
  8. #include "resource.h"

  9. //-----------------------------------------------------------------------------
  10. class CMyDockBar : public CAcUiDockControlBar {
  11.         DECLARE_DYNAMIC(CMyDockBar)

  12. public:
  13.        
  14.         CTreeCtrl m_wndTree;
  15.         CMyDockBar () ;

  16.         //{{AFX_VIRTUAL(CMyDockBar)
  17.         public:
  18.         virtual BOOL Create(CWnd*pParent, LPCSTR lpszTitle);
  19.         protected:
  20.         virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
  21.         virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
  22.         //}}AFX_VIRTUAL

  23. protected:
  24.         //{{AFX_MSG(CMyDockBar)
  25.         afx_msg int OnCreate (LPCREATESTRUCT lpCreateStruct);
  26.         //}}AFX_MSG
  27.         DECLARE_MESSAGE_MAP()
  28.         virtual void SizeChanged (CRect *lpRect, BOOL bFloating, int flags);
  29.     virtual BOOL AddCustomMenuItems(LPARAM hMenu);
  30. } ;

  31. //{{AFX_INSERT_LOCATION}}
  32. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.

  33. #endif //----- !defined(ARX__MYDOCKBAR_H__20020510_100826)

复制代码

MyDockBar.cpp

  1. //-----------------------------------------------------------------------------
  2. #include "StdAfx.h"
  3. #include "MyDockBar.h"
  4. #include "mydlg.h"
  5. //-----------------------------------------------------------------------------
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif

  11. //-----------------------------------------------------------------------------
  12. IMPLEMENT_DYNAMIC(CMyDockBar, CAcUiDockControlBar)

  13. BEGIN_MESSAGE_MAP(CMyDockBar, CAcUiDockControlBar)
  14.         //{{AFX_MSG_MAP(CMyDockBar)
  15.         ON_WM_CREATE()
  16.         //}}AFX_MSG_MAP
  17. END_MESSAGE_MAP()

  18. //-----------------------------------------------------------------------------
  19. // CMyDockBar *pInstance =new CMyDockBar ;
  20. // pInstance->Create (acedGetAcadFrame (), "My title bar") ;
  21. // pInstance->EnableDocking (CBRS_ALIGN_ANY) ;
  22. // pInstance->RestoreControlBar () ;

  23. static CLSID clsCMyDockBar ={ 0x697bdb0c, 0xd3be, 0x41b9, { 0xb5, 0x75, 0xc3, 0x99, 0xad, 0x48, 0x77, 0xad } } ;

  24. //-----------------------------------------------------------------------------
  25. CMyDockBar::CMyDockBar() : CAcUiDockControlBar () {
  26.         //{{AFX_DATA_INIT(CMyDockBar)
  27.         //}}AFX_DATA_INIT
  28. }

  29. BOOL CMyDockBar::Create(CWnd*pParent, LPCSTR lpszTitle) {
  30.         CString strWndClass ;
  31.         strWndClass =AfxRegisterWndClass (CS_DBLCLKS, LoadCursor (NULL, IDC_ARROW)) ;
  32.         CRect rect (0, 0, 250, 200) ;
  33.         if ( !CAcUiDockControlBar::Create (
  34.                         strWndClass,
  35.                         lpszTitle,
  36.                         WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN,
  37.                         rect,
  38.                         pParent, 0
  39.                 )
  40.         )
  41.                 return (FALSE) ;

  42.         SetToolID (&clsCMyDockBar) ;

  43.         //----- TODO: Add your code here
  44.        
  45.         return (TRUE) ;
  46. }

  47. int CMyDockBar::OnCreate (LPCREATESTRUCT lpCreateStruct) {
  48.         if ( CAcUiDockControlBar::OnCreate (lpCreateStruct) == -1 )
  49.                 return (-1) ;

  50.         //----- TODO: Add your code here
  51.        
  52.     if (!m_wndTree.Create(WS_CHILD | WS_VISIBLE |
  53.                     TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES,
  54.                 CRect(0,0,1,1), this, 0x1234))
  55.                 return -1;

  56.         m_wndTree.ModifyStyleEx(0, WS_EX_CLIENTEDGE);
  57.         m_wndTree.InsertItem("TreeItem1");
  58.         m_wndTree.InsertItem("TreeItem2");
  59.         return (0) ;
  60. }

  61. void CMyDockBar::SizeChanged (CRect *lpRect, BOOL bFloating, int flags) {
  62.         //----- TODO: Add your code here
  63.     if (bFloating)
  64.                 m_wndTree.SetWindowPos(NULL,lpRect->left+2,lpRect->top+2,lpRect->right-4,lpRect->bottom-4,SWP_SHOWWINDOW);
  65.     else{
  66. //                CRect rect;
  67. //            GetUsedRect(rect);
  68. //                m_wndTree.SetWindowPos(NULL,rect.left+4,rect.top+4,rect.Width()-4,rect.Height()-4,SWP_SHOWWINDOW);

  69.                 m_wndTree.SetWindowPos(NULL,lpRect->left+4,lpRect->top+4,lpRect->Width()-4,lpRect->Height()-4,SWP_SHOWWINDOW);
  70.         }
  71. }



  72. BOOL CMyDockBar::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
  73. {
  74.         // TODO: Add your specialized code here and/or call the base class
  75.         //
  76.        
  77.         if ( wParam == 0x1234 ){//如果是m_wndTree
  78.                 switch (((LPNMHDR)lParam)->code){
  79.                         case NM_CLICK://在m_wndTree上按下鼠标左键
  80.                                 CMyDlg myDlg;
  81.                                 myDlg.m_pTreeCtrl = &m_wndTree;
  82.                                 myDlg.UpdateData(FALSE);
  83.                                 myDlg.DoModal();
  84.                                 break;
  85.                   /*
  86.                         case TVN_SELCHANGED:
  87.                                 ....
  88.                                 break;
  89.                         case TVN_GETDISPINFO:
  90.                                 ....
  91.                                 break;

  92.                   */
  93.                 }

  94.         }

  95.         return CAcUiDockControlBar::OnNotify(wParam, lParam, pResult);

  96. }

  97. BOOL CMyDockBar::AddCustomMenuItems(LPARAM hMenu){
  98.         HMENU hPopMenu;
  99.         hPopMenu=(HMENU)(hMenu&0xffff);
  100.         CMenu* pop_menu = CMenu::FromHandle(hPopMenu);
  101.     pop_menu->AppendMenu(MF_SEPARATOR);
  102.         pop_menu->AppendMenu(MF_STRING,0x1235,"Insert");
  103.         return true;
  104. }

  105. BOOL CMyDockBar::OnCommand(WPARAM wParam, LPARAM lParam)
  106. {
  107.         // TODO: Add your specialized code here and/or call the base class
  108.         if ( wParam == 0x1235 ){//响应菜单
  109.                 CMyDlg myDlg;
  110.                 myDlg.m_pTreeCtrl = &m_wndTree;
  111.                 myDlg.m_strEdit="1234567890";
  112.                 myDlg.DoModal();
  113.                 return true;
  114.         }
  115.         else
  116.           return CAcUiDockControlBar::OnCommand(wParam, lParam);
  117. }
复制代码

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-10-11 13:36:45 | 显示全部楼层
真的很感激大家!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-12-1 10:57:19 | 显示全部楼层
能把以上附件给我邮一份吗?我下载后是打不开
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-18 22:00:20 | 显示全部楼层
下载后是打不开
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-18 22:13:18 | 显示全部楼层
前面一个关于CAcUiDockControlBar的例子附件也打不开 怎么回事?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-10-20 08:51:08 | 显示全部楼层
CAcUiDockControlBar是不是比较难作,如何才能快速的实现
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-11-26 19:33:25 | 显示全部楼层
不错,希望能将完整的代码附上,供需要者参考。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-22 20:25 , Processed in 0.298042 second(s), 60 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表