CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

我在对话框中嵌入一个属性页,但任意选定一页后,程序就失去响应,谁能帮我解决?

楼主tleon(澎蜞)2003-06-02 13:44:06 在 VC/MFC / 基础类 提问

在对话框上Create的属性页,选择任意一页后,程序就失去响应了 问题点数:200、回复次数:9Top

1 楼rengo(攀梯)回复于 2003-06-02 13:46:43 得分 10

没得太笼统,人家怎么帮你Top

2 楼free_card(痛并快乐着)回复于 2003-06-02 13:58:46 得分 20

http://www.vckbase.com/document/viewdoc.asp?id=398Top

3 楼tleon(澎蜞)回复于 2003-06-02 14:30:04 得分 0

to   Free_card  
          我就是按照他的方法创建的,作者已经讲了:"但是这样也有一些缺陷:主对话框不能处理属性页上标签的消息,即点击标签时无法通知主对话框。(可能笔者水平有限,理论上应该可以,但笔者尚未解决这个问题)",这就是问题  
   
   
          sheet在创建的时候,父窗口是Desktop时,主窗口不会没有响应,如果父窗口是dialog时,dialog就会失去响应.Top

4 楼loopyifly(深情咸鱼)回复于 2003-06-02 15:02:01 得分 20

记得VC++技术内幕   上有一个属性页的例子可以参考  
   
  upTop

5 楼mtsh(清风华仔(*****))回复于 2003-06-02 15:14:55 得分 0

把你的邮箱留下,我给你一个我做过的标签对话框工程,相信你通过类比,就可达到你的要求了!  
  Top

6 楼kds(生)回复于 2003-06-02 15:18:06 得分 10

不会,可以帮你顶一下Top

7 楼CCsdnCC(学研)回复于 2003-06-02 17:48:28 得分 0

我也遇到过类似的问题:  
  动态地加减PropertyPage后,如果将程序的焦点转移到其它程序上后,本程序就再也没有了响应。   
  关注你的问题。Top

8 楼tleon(澎蜞)回复于 2003-06-03 11:56:56 得分 0

我的油箱:leonsb@163.net,谢谢mtsh  
   
  这个问题我已经解决了,不过我想看看mtsh的方法。  
  我的方法如下:  
   
  //开始创建属性页  
  status_sheet   =   new   RoMySheet("人物状态");  
   
  status_sheet->Construct("人物状态",   GetDesktopWindow());  
  pStatusPage.Construct(IDD_STATUSSET);  
   
  status_sheet->AddPage(&pStatusPage);  
  //创建的时候,父窗口为desktop,有child标志  
  status_sheet->Create(GetDesktopWindow(),   WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS);  
   
  //将属性页移动到dialog中IDC_STATIC1的位置  
  CRect   rcWin2,   rcSheet,   rcWin;  
  GetWindowRect(&rcWin2);  
  GetWindowRect(&rcWin);  
  ScreenToClient(&rcWin);  
   
  //属性页  
  CWnd   *pWnd   =   GetDlgItem(IDC_STATIC1);  
  pWnd->GetWindowRect(&rcSheet);  
   
  int   nSheetWidth   =   rcSheet.Width();  
  rcSheet.right   =   rcWin.right   -   5;  
  rcSheet.left   =   rcSheet.right   -   nSheetWidth;  
  rcSheet.bottom   =   rcWin.bottom   -   7;  
  rcSheet.top   -=   rcWin2.top;  
  status_sheet->MoveWindow(&rcSheet);  
   
  //激活没一页,使每一页创建  
  int   i;  
  for   (i=0;i<status_sheet->GetPageCount();i++)  
  {  
  status_sheet->SetActivePage(i);  
  }  
  status_sheet->SetActivePage(0);  
   
  //去掉child标志  
  DWORD   style=GetWindowLong(status_sheet->m_hWnd,GWL_STYLE);  
  style   ^=   WS_CHILD;  
  SetWindowLong(status_sheet->m_hWnd,GWL_STYLE,style);  
   
  //关键的一句,将dialog做为sheet的父窗口,这样sheet就随dialog一起更新了  
  status_sheet->SetParent(this);  
  Top

9 楼mtsh(清风华仔(*****))回复于 2003-06-03 13:14:00 得分 140

楼主,邮件已发,请查收!Top

相关问题

  • 我在对话框中嵌入一个属性页,上面有一个按钮,用于弹出一个子对话框,但结果一按按钮,程序就失去响应,谁能帮我解决?
  • 我在对话框中嵌入一个属性页,上面有一个按钮,用于弹出一个子对话框,但结果一按按钮,程序就失去响应,谁能帮我解决?100分!
  • 如何在属性选项卡对话框的选项卡间响应消息?
  • 紧急求助:对话框中含属性页,如何将属性页中控件的响应通知给对话框?
  • 修改对话框属性???
  • 怎样在对话框中响应CHECK BOX BN_CLICK消息把某一编辑框属性改为READONLY?
  • 关于 对话框嵌入对话框 的问题
  • 能把对话框嵌入CView中吗?
  • 嵌入的对话框问题,求助!
  • 关于对话框的ModalResult属性?

关键词

  • 属性
  • 解决
  • ws
  • rcsheet
  • rcwin
  • 对话框
  • sheet
  • 属性页
  • 程序
  • 失去响应

得分解答快速导航

  • 帖主:tleon
  • rengo
  • free_card
  • loopyifly
  • kds
  • mtsh

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo