怎么将模态对话框隐藏

浏览次数:62 时间:2020-06-24

  如何将模态对话框隐藏?

  如何将模态对话框隐藏?好像用那个SHOWWINDOW(SW_HIDE);不行呢!然后我又换了一种想法来完善,将对话框窗口最小化,不让它在任务栏上显示,但是这样,虽然完成了不能在任务栏上显示,但是最小化时它显示在左下角的地方,但是还是能看见,我觉得他们是茅盾的.部分源码如下:

  CHideDlg dlgParent;

  dlgParent.Create(IDD_HIDE_DIALOG);

  dlgParent.ShowWindow(SW_HIDE);

  CHideDlg dlg(&dlgParent);

  m_pMainWnd = &dlg;

  int nResponse = dlg.DoModal();

  if (nResponse == IDOK)

  {

  // TODO: Place code here to handle when the dialog is

  // dismissed with OK

  }

  else if (nResponse == IDCANCEL)

  {

  // TODO: Place code here to handle when the dialog is

  // dismissed with Cancel

  }

  dlgParent.DestroyWindow();

  然后在DLG里面的OnInitDialog()

  输入:this-> ModifyStyleEx(WS_EX_APPWINDOW, 0);

  this-> showWindow(SW_SHOWMINIMISIZED);

  ------解决方案--------------------

  不是模态对话框的问题,是主对话框的问题。

  主对话框在OnInitDialog()里面执行隐藏,我只知道一种方法:

  ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW);

  WINDOWPLACEMENT wp;

  wp.length=sizeof(WINDOWPLACEMENT);

  wp.flags=WPF_RESTORETOMAXIMIZED;

  wp.showCmd=SW_HIDE;

  SetWindowPlacement(&wp);

  ------解决方案--------------------

  首先,你这个只是个测试性的东东而且意义不大。本来模态对话框就必须要求用户响应,可你把它隐藏了不是捉弄人吗?

  其次,在OnInitiateDialog里做显然不行的,这时候对话框还没完全显示呢,你ShowWindows能够Show谁啊?

  最后,真要做的话,这样, 再开个线程,用FindWindow找到这个对话框(监视对话框创建),一发现这个窗口立刻执行ShowWindow(hWnd, SW_HIDE)。

  ========================

  by伟大的领袖、伟大的导师、伟大的舵手、天才程序员:xuzzzhen124@hotmail.com

  VC调VC 动态库的问题请大侠们帮我看看!

  有一个动态库方法char * Calc(char* chashthis)

  我现在在另一个工程去用我是这样写的编译通过运行报错了,但是我在dll中还有一个简单方法就是返回 int rInt(){return 1;}没有出错.

  typedef char*(_stdcall*DLLFUNC)(char*);

  DLLFUNC lpFunc;

  lpFunc=(DLLFUNC)::GetProcAddress(hDll, "Calc ");

  我现在有一个CString 参数fileContent