当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

 ·在线等    »显示摘要«
    摘要: 我的qq上的对话每次给人发的时候都有 自动添加的乱码,哪位仁兄帮帮忙!!谢了!! ......
    摘要: 我安装的c#builder没有帮助文件,不知道那里可以下载啊 ......


发现微软的一个重大BUG,真TMD气死我了,谁能解决。。。。。。。

新建一个基于对话框应用程序。  
   
  新建一个CMySheet类由CPropertySheet类派生。  
  新建一个对话框,设置其基类为CPropertyPage   ;  
  将这个属性页添加到属性表中。  
   
  目的是产生一个非模式的属性表,其父窗口为主对话框。  
   
  继续--->  
   
  在主对话框添加一个按钮响应事  
  CMainDlg::OnButton1()  
  {  
      CPropertySheet   *psheet;  
      psheet=   new   CPropertySheet("fsd");  
      psheet->Create(this,WS_CHILD|WS_VISIBLE);       /*--->这句是关键设置WS_CHILD   属性*/  
      sheet->MoveWindow(0,0,400,300);  
  }  
   
  编译运行。。。成功,点击按钮   ,显示属性表,似乎没有什么问题,但是好戏在后面呢。  
   
  然后   ,切换一下窗口,在切换过来,靠,死了????怎么会死了???  
   
  我试过很多次,如果不切换就一直没事,只要一切换   就翘了。  
   
  各位朋友可以试试!!!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~气死人。  
   
   
   
   
 

NO.1   作者: fengqinggao

如果你想那个CSheet完全附属于一个对话框,是不是用CTabCtrl来得好些?

NO.2   作者: whoo

呵呵,再现了一下楼主的代码,果然如此。  
   
  暂停程序可以发现   程序陷入了   消息死循环,相关的消息为   WM_ACTIVE   (0x6)   和   WM_GETDLGCODE(135)。  
   
  跟踪发现消息分发无法找到处理WM_GETDLGCODE的dlg   proc,   于是由default处理,返回0。  
   
  由此推测   判断CPropertySheet   和   CDialog冲突。发给CPropertySheet的WM_GETDLGCODE被CDialog处理,而CDialog无法知道CPropertySheet的内容,无法处理该消息,而WM_ACTIVE需要知道WM_GETDLGCODE值以进行进一步处理,于是重复尝试WM_GETDLGCODE,   造成死循环。  
   
  解决方案,用CWnd最为父窗口,而不是CDialog,应该可以避免这个问题。


 ·winsock问题    »显示摘要«
    摘要: http://expert.csdn.net/expert/topic/2180/2180140.xml?temp=.8940393 请大家看一看,谢谢!! ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE