113E博章

       登录 /注册
首页 一算子网 发布
分类 :c++/vc

如何在DLL中创建窗体(对话框和SDI/MDI) C+/VC

[ 2008-7-30 22:33:00 | 发表者 : zihe ]

    这是一个老问题了。我对此简单地写了一个小结,有不足之处,还请指出,谢 谢。

   调用dll中的dlg或sdi/mdi, 只是不能再使用app类了,因为它是从cwinthread继承过来,内部的线程机制导出了问题的出现。
   (1)对于调用dll中的dialog,很简单,直接调用就是
      如:  extern "c"
            void loaddialog()
            {
    ctestdlg   dlg;
                if (dlg.domodal == iodk)
                {
                    //......
                }
            }
    (2)对于调用dll中的sdi/mdi, 不那么直接。需要保证doc/view和mainframe之间的关联,因此得保留原来在app中用的cdoctempate类及对它的使用。为此,我们可以自己建一个类如csdimain来做接替原来app中的工作(当然不用类,就直接用问题也不大,毕竟都是创建工作都是在堆上进行的),
     如:
bool csdimain::initinstance()
{
 // 创建模板
 if(m_ptemplate == null)
 {
  m_ptemplate = new cmultidoctemplate(
   idr_mainframe,
   runtime_class(csdifortestdoc),
   runtime_class(cmainframe),
   runtime_class(csdifortestview));
 }

 csdifortestdoc* pdocument = new csdifortestdoc;
 // 创建新的frame
 cframewnd* pframe = m_ptemplate->createnewframe(pdocument, null);
 if (null == pframe)
 {
  afxmessagebox("create frame failed");
  return false;
 }

 m_ptemplate->initialupdateframe(pframe, pdocument);

 return true;
}

杨晓明 2002-5-11 

e-mail: brierbird97@mails.tsinghua.edu.cn




上一篇:让CListBox具有拖放功能 C+/VC  
下一篇:c+对象模型读书笔记一 C+/VC

浏览模式 : 显示全部 | 评论 : 0 | 排序 | 浏览 : 463

我要发表文章
回复标题:  
    Email :
* 请输入验证码
 
统计数据
文章数量 : 300297
评论次数 : 460
访问次数 : 19292254
在线人数 : 2108

附近文章
  • 从高斯数列谈代码效率 C+...
  • 展现TRACE之威力 C+/VC
  • Simple Bitmapped menu i...
  • 走火入魔 C+ Simple 版 C...
  • 让CListBox具有拖放功能 ...
  • c+对象模型读书笔记一 C+...
  • 用VC+6.0实现PC机与单片机...
  • 数据结构――架的概念 C+...
  • IIS如何接收ServerXMLHTT...
  • ServerXMLHTTP到底传递什...
热门文章
  • 如...
  • Socket编程中select()的妙...
  • 如何在DLL中创建窗体(对话...
  • 重载赋值运算符 C+/VC
  • 展现TRACE之威力 C+/VC
  • ·用豪杰大眼睛制作照片v...
  • 一個簡單的錄音放音程序 ...
  • 用Socket接口实现网络异步...
  • MFC动态创建控件的消息处...
  • 实现服务器端的多线程SOC...
最新文章
  • 股票技术不准了
  • 2009年元旦放假安排
  • 三国 旬彧VS诸葛亮
  • ASR浮筹比例
  • 杨百万投资股票的三大秘诀...
最近评论
  • xueshanfh
  • 匿名
  • 匿名
  • 匿名
  • 匿名
  • 匿名Martha Jack
  • 匿名
  • Tom Moddy
  • 匿名Jimmy Adams
  • 匿名
 
 

Copyright (C) 一算子网 2006-2008, All Rights Reserved 京ICP备06020154号
服务QQ: 有问题请留言 留言邮箱pinhu530@sohu.com