冰斌 发表于 2002-5-11 13:06:00

[求助]讨教ARX中的CAcUiTabMainDialog 和 CAcUiTabChildDialog的用法

最近,有一小项目用到了属性单与属性页,在ARX文档中讲,用CAcUiTabMainDialog 和 CAcUiTabChildDialog来替代他们,有关此文档反复看了多次,仍不得其法。VC++也不太熟练(WINDOWS编程我原用DELPHI)。只能向版主或高手求教,且用示例说明。谢谢!email:wenbinpeng@163.com

bb 发表于 2002-5-12 12:45:00

其实这个问题很难用一两句话说清楚的。

你可以找一本ARX的书看一下,因为操作起来很麻烦,一两句话也说不清楚。不过我可以简单的向你描述一下:
   先加入属性单/属性页,属性单用控件中的“Tab Control”,属性页就同一般的对话框一样,下面的例子中我用MainSht来表示属性单类,用CPg1,CPg2,CPg3分别表示三个属性页类。然后需要在属性单的.h文件中声明属性页的实例,例如:
// MainSht.h
classCMainSht:public CAcUiTabMainDialog{
DECLARE_DYNAMIC(CMainSht)
//
//
//
CPg1m_Pg1;
CPg2m_Pg2;
CPg3m_Pg3;
在MainSht.cpp文件中
BOOL CMainSht::OnInitDialog()
{
//将每个属性页加入到属性单中;
//m_tabCtrl是属性单中Tab Control控件对应的变量;m_pg1,m_pg2,m_pg3分别是三个属性页对应的变量。
//
SetAcadTabPointer(&m_tabCtrl);//得到指向嵌入式标签控件的指针;
);
//将各个页插入到单中;
m_tabCtrl.AddTab(0,_T("Pg1"),CPg1::IDD,&m_pg1m_tabCtrl.AddTab(1,_T("Pg2"),CPg2::IDD,&m_pg2);
m_tabCtrl.AddTab(1,_T("Pg3"),CPg3::IDD,&m_pg3);

//
}
还需要在各个属性页中加入你特性化的东西。
我可不是什么高手,只是自己曾经做过,也不知道说明白了没有,但愿能帮上你的忙。可以看看爱尔兰人Charles McAuley编的AutoCAD2000ObjectARX,李世国,潘建忠,平雪良译。

zrs101 发表于 2002-5-13 11:48:00

like this

ARX中的CAcUiTabMainDialog 和 CAcUiTabChildDialog
与mfc中的类区别在于数据校验,步骤:
1 摆放空间形成Dialog
2 生成CPropertySheet和CPropertyPage类
3 将 CPropertySheet,CPropertyPage改成CAcUiTabMainDialog 和 CAcUiTabChildDialog
4 将空件的类改成cad的相应的类如:CEdit-->CAcUiEdit

冰斌 发表于 2002-5-13 20:49:00

非常感谢!

按照bb君的指引,现已搞定。经验总结:1、VC不熟;2、C++概念不清;3、CTabCtrl、CAcUiTabCtrl及CAcUiTabChildDialog之间的关系糊涂;4、我买的2本书均是帮助文件的“译文”,bb君讲的书在我市没有卖,可能老外才是真的著书吧。

冰斌 发表于 2002-5-15 13:42:00

老问题的新现象,请问BB

似乎在NT中无问题(未深入调试),而在WIN XP中,标签选项卡的第一页(项)不在对话框中显示,且第一页只有一个默认的<确定>按键,还不能对CAcUiTab的成员函数操作。是什么原因?还请BB君解答。

bb 发表于 2002-5-15 17:58:00

应该和操作系统关系不大吧?!

我觉得用什么操作系统并不影响程序的可执行性的。肯定还是你程序有问题。“确定”按钮不应该在属性页中显示吧?!应该把它放到属性单中。这样吧!我给你发个例程你好好看看。

xcxm0304 发表于 2006-7-20 16:57:00

<P>谁还有“BB”发的那个例程啊,能发给我一份吗?谢谢</P>
<P><A href="mailto:xcxm0304@126.com" target="_blank" >xcxm0304@126.com</A></P>

nc2t 发表于 2006-7-20 20:36:00

<P>呵呵,老兄我也是从Delphi转过来的,本来从Delphi两行就能解决的问题,在VC中要经过很多不好理解的步骤。上面的BB说的很详细了,希望大家共同进步</P>
页: [1]
查看完整版本: [求助]讨教ARX中的CAcUiTabMainDialog 和 CAcUiTabChildDialog的用法