如何在自己的对话框调用CAD的内置对话框,并能够再返回自己的对话框中

来源:互联网 发布:关于json的面试题 编辑:程序博客网 时间:2024/06/05 04:45
转载来自:http://blog.163.com/aiding_001/blog/static/2290819201321532458888/

例如在自己的对话框中的按钮中调出象style命令出现的对话框,操作完毕后再回到自己的对话框。

如常用的几个对话框对应的函数为:
1、尺寸标注样式编辑对话框:
int acedEditDimstyleInteractie(AcDbDatabase *,AcDbDimStyleTableRecord *,int);
2、多行文字编辑对话框:
int acedEditMTextInteractie(AcDbMText *);
3、公差编辑对话框:
void acedEditToleranceInteractie(AcDbFcf *);
4、CAD自己的文件对话框:
int acedGetFileD(const char *,const char *,const char *,int,struct resbuf *);
int acedGetFileNavDialog(const char *,const char *,const char *,const char *,int,struct resbuf**);
5、填充面板对话框:
bool acedHatchPalletteDialog(const char *,bool,char * &);
6、线形对话框:
bool acedLinetypeDialog(AcDbObjectId,bool,char * &,AcDbObjectId &);
7、线宽对话框:
bool acedLineWeightDialog(AcDb::LineWeight,bool,AcDb::LineWeight &);
8、打印样式对话框:
bool acedPlotstyleDialog(const char *,bool,char * &);
9、填充编辑对话框:
void hatchedit(long,int,bool,const AcDbObject *);
10、文字样式对话框:
void inokeTextStyleDialog(AcDbDatabase *,CString *);
这些函数大多不在文档中,可按两种方式使用:
1、将这些函数放在一个头文件中,使用时直接包含进来就可以了。
2、先用GetModuleHandle获取acad.exe的句柄,然后用GetProcAddress动态获取指定函数的入口地址,之后就可以直接调用了。


不过在一般函数里引用没有问题,但是在对话框中调用就有问题,调不出那个cad对话框。其原因是资源问题,使用前需要用AfxSetResourceHandle设置CAD资源,用完回设就可以了!

0 0