lamboy 发表于 2008-5-10 11:47:00

[求助]arx使用对话框的问题

<p>1.为什么我的arx中调用对话框必须加 CAcModuleResourceOverride resOverride;&nbsp;这句才能这确显示?我看别人写的都没有这句却可以?为什么啊?</p><p></p><p>2.如何将对话框以非模态方式显示?使用m_dlg.DoModal();是以模态显示的,我需要非模态显示,如何做?</p><p></p><p>下面是我调用对话框的函数?望朋友们帮我解决上面的问题,非常感谢!</p><p>//主函数<br/>void addCode_Main(void)<br/>{<br/>&nbsp;//必须,否则显示的对话框并非你资源中所定义的<br/>&nbsp;CAcModuleResourceOverride resOverride;&nbsp;<br/>&nbsp;//获取cad窗口句柄<br/>&nbsp;CMDIFrameWnd *pm=acedGetAcadFrame();<br/>&nbsp;<br/>&nbsp;CacDialog m_dlg;<br/>&nbsp;int retvalue = m_dlg.DoModal();<br/>}</p>

hbird 发表于 2008-5-15 16:49:00

<p>非模态对话框</p><p>CacDialog *pDlg = new CacDialog();</p><p>pDlg.Create(IDD_***) ;&nbsp; //IDD_***是对话框资源ID</p><p>pDlg.ShowWindow(SW_SHOW);</p><p>/////////////////////////////////////</p><p>CAcModuleResourceOverride resOverride ;</p><p>这个好像也是处理资源的,但具体的作用,我也很想知道,</p><p>期待高手讲解(估计现在高手很少来吧)</p>

bluelightcsy 发表于 2008-5-16 14:52:00

CAcModuleResourceOverride 的确是用来切换资源的,在ARX代码中,默认的始终是CAD的资源,所以当你需要用自己的资源DLL时,需要调用这个,来切换到你自己的res dll,否则你用AcString等Load过来的字符串,将是CAD中同号的字符串资源,而不是你自己想要的定义在自己资源里的。尤其是当你需要在对话框中进行图形操作,如beginEditorCommand这些操作时,这CAcModuleResourceOverride 就更加重要,加得不对,经常出来错误的结果。
页: [1]
查看完整版本: [求助]arx使用对话框的问题