CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  硬件/嵌入开发 >  嵌入开发(WinCE)

又是EVC4.0两个关于对话框的问题

楼主milozy1983(Detective)2005-06-01 16:58:26 在 硬件/嵌入开发 / 嵌入开发(WinCE) 提问

1.当我用主对话框创建一个线程后,比如让线程里再开启一个对话框以及AfxMessageBox,当子线程运行结束后我的主对话框竟然最小化了,这个是怎么搞的啊,我在VC6下试了下没这个问题  
   
  UINT   ThreadProc(LPVOID   param)  
  {  
   
  AfxMessageBox(_T("TEST"));  
   
  return   0;  
  }  
   
   
  void   CThreadDlg::OnButton1()    
  {  
  //   TODO:   Add   your   control   notification   handler   code   here  
  //   TODO:   Add   your   control   notification   handler   code   here  
  HWND   hWnd   =   GetSafeHwnd();  
  AfxBeginThread(ThreadProc,NULL,THREAD_PRIORITY_NORMAL);  
  }  
   
  2.EVC里基于对话框的程序如何设置启动画面呢?  
  我在主对话框里的OnInitDlg里用了模式对话框后,当我按ESC键后主对话框和子对话框都没了。而在InitDlg中用了非模式对话框的时候关闭了子对话框后主对话框又最小化了,好象VC6里都没这些问题,请教改如何解决。主要是在EVC基于对话框的程序里做启动画面。  
   
   
  BOOL   CJingmeiDlg::OnInitDialog()  
  {  
  CDialog::OnInitDialog();  
   
   
   
  //   Set   the   icon   for   this   dialog.     The   framework   does   this   automatically  
  //     when   the   application's   main   window   is   not   a   dialog  
  SetIcon(m_hIcon,   TRUE); //   Set   big   icon  
  SetIcon(m_hIcon,   FALSE); //   Set   small   icon  
   
  CenterWindow(GetDesktopWindow()); //   center   to   the   hpc   screen  
   
  //   TODO:   Add   extra   initialization   here  
  //隐藏任务栏  
  BOOL   bFound   =   FALSE;  
  while(!bFound)  
  {  
  HWND   hTaskBarWnd   =   ::FindWindow(_T("HHTaskBar"),   NULL);  
  if(   hTaskBarWnd   )  
  {  
  bFound   =   TRUE;  
  ::ShowWindow(hTaskBarWnd,   SW_HIDE);  
  }  
  else  
  Sleep(100);  
  }  
   
   
  //主对话框全屏  
  int   cx,   cy;    
          HDC   dc   =   ::GetDC(NULL);    
          cx   =   GetDeviceCaps(dc,HORZRES)   +    
                  GetSystemMetrics(SM_CXBORDER);    
          cy   =   GetDeviceCaps(dc,VERTRES)   +  
                  GetSystemMetrics(SM_CYBORDER);    
          ::ReleaseDC(0,dc);    
  SetWindowLong(m_hWnd,   GWL_STYLE,    
                  GetWindowLong(m_hWnd,   GWL_STYLE)   &    
          (~(WS_CAPTION   |   WS_BORDER)));    
   
          ::SetWindowPos(m_hWnd,   HWND_TOPMOST,    
                  -(GetSystemMetrics(SM_CXBORDER)+2),    
                  -(GetSystemMetrics(SM_CYBORDER)+2),    
                  cx+5,cy+5,   SWP_NOZORDER);    
   
  //调用子对话框做启动画面  
  CMydlg   *dlg   =   new   CMydlg;  
  dlg->Create(IDD_DIALOG1);  
  dlg->ShowWindow(true);  
   
   
   
  return   FALSE;     //   return   TRUE     unless   you   set   the   focus   to   a   control  
  }  
  问题点数:40、回复次数:3Top

1 楼lijin7784(勇敢的心)回复于 2005-06-03 11:28:50 得分 20

呵呵,帮你顶下  
  Top

2 楼milozy1983(Detective)回复于 2005-06-03 12:38:57 得分 0

谢谢,第二个问题我解决了,第一个问题还没想到办法~Top

3 楼jjdzyj(jjdzyj)回复于 2005-06-03 16:45:27 得分 20

如果你用消息的方式与线程分离来显示对话框,应该是可以的Top

相关问题

  • 请问在EVC下如何彻底的删除对话框和对话框类
  • 两个对话框的相互关系
  • 有关对话框的两个问题
  • 如何让wince mediaplayer control能插入到evc的对话框中???
  • 用evc开发的对话框程序怎么运行?
  • ++++ 一个基本对话框工程,在主对话框中又显示一个非模式对话框,有几个小问题请教.
  • 有两个对话框,要在现有的CFormView上删掉现有的对话框并显示另一个对话框,怎么做啊?
  • 在一个非模式对话框中调用一个模式对话框,为什么要点两次确定才能关闭模式对话框?
  • 有两个平级的对话框,请问如何在一个对话框的函数里得到另一个对话框的指针?
  • 如何在主对话框隐藏鼠标?(而在子对话框又可以显示又怎么作?)

关键词

  • 线程
  • dc
  • null
  • 对话框
  • htaskbarwnd
  • evc
  • bfound
  • getsystemmetrics
  • 问题
  • hwnd

得分解答快速导航

  • 帖主:milozy1983
  • lijin7784
  • jjdzyj

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

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