如何在CDockablePane中显示我做好了的一个dialog

qinhualuo 2010-01-03 08:02:37
我也遇到这样的问题,我看到http://topic.csdn.net/u/20090611/10/d82d1642-53e1-4c40-a8c3-27fdb959ef27.html#r_achor有人谈到此问题的解决方法,可是我是新手,我的代码如下:
CDialog* pdlg = new CDialog;
pdlg->Create(IDD_HISTORY_DIALOG, &m_wndFileView);
pdlg->ShowWindow(SW_SHOW);
if (CDockablePane::OnCreate(lpCreateStruct) == -1)
return -1;
//
CRect rectDummy;
rectDummy.SetRectEmpty();

// Create view:
const DWORD dwViewStyle = WS_CHILD | WS_VISIBLE | TVS_HASLINES | TVS_LINESATROOT | TVS_HASBUTTONS;

if (!m_wndFileView.Create(dwViewStyle, rectDummy, this, 4))
{
TRACE0("Failed to create file view\n");
return -1; // fail to create
}
为什么我的这个dialog是弹出对话框的模式显示在那里呢,我要他显示在我的DockablePane里面啊。
请高手指点!
...全文
1002 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuxiangwin 2010-01-22
  • 打赏
  • 举报
回复
忘记了一点:
对话框需要设成无边框和子窗口

xuxiangwin 2010-01-22
  • 打赏
  • 举报
回复
1. CMDockahlePane 中添加 成员
CMyDlg m_dlg;

2. CMDockahlePane::OnCreate
m_dlg.Create(IDD_xxxxx, this);
m_dlg.ShowWindow(SW_SHOW);

3. CMDockahlePane::OnSize
m_dlg.MoveWindow(rect);
xuxiangwin 2010-01-22
  • 打赏
  • 举报
回复
将对话框做成成员变量的方式试试看
我之前用过的
zhous001 2010-01-04
  • 打赏
  • 举报
回复
mark
qinhualuo 2010-01-04
  • 打赏
  • 举报
回复
不管是CHistoryDLG 还是继承自DockablePane的wndFileView,都没有OnInitUpdate方法。
qinhualuo 2010-01-03
  • 打赏
  • 举报
回复
to 2楼:
那个m_wndFileView之前是没有问题的,如果我注释掉pdlg->ShowWindow(SW_SHOW);这句可以运行,只是没有dialog效果。
qinhualuo 2010-01-03
  • 打赏
  • 举报
回复
跟踪才发现pdlg->ShowWindow(SW_SHOW);这句的问题,SW_SHOW换成其他的还是错误,不知道怎么搞?
oyljerry 2010-01-03
  • 打赏
  • 举报
回复
先创建m_wndFileView,在m_wndFileView的OnInitUpdate中再

CDialog* pdlg = new CDialog;
pdlg->Create(IDD_HISTORY_DIALOG, &m_wndFileView);
pdlg->ShowWindow(SW_SHOW);
qinhualuo 2010-01-03
  • 打赏
  • 举报
回复
我后来把这个dialog设成child,可是运行出错,那种“终止,重试,忽略”的错误!

15,980

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧