显示非模式对话框实例(三)

2013-02-08 14:31:47 · 作者: · 浏览: 898


  ///创建非模式对话框
  [cpp]
  HWND hWnd = CreateDialogParam(hInstance,MAKEINTRESOURCE(IDD_MAIN) ,NULL ,DlgProc ,0);
  ///显示对话框
  [cpp]
  ShowWindow(hWnd ,SW_SHOW);
  MSG msg ={0};
  while(GetMessage(&msg,NULL,0,0))
  {
  DispatchMessage(&msg);
  }
  OutputDebugString(_T("结束了\n"));
  return 0;
  }

  说明:
  1、非模式对话框必须在WinMain函数中加上消息循环的处理,否则应用程序会立即退出。
  2、若非模式对话框做主窗体,则必须在对话框结束前调用PostQuitMessage函数以投递结束消息循环的消息。
  3、非模式对话框也处理不到WM_CREATE消息。
  ******************************************************************************************
  WM_CLOSE,调用DestroyWindow()                                                     **
  DestroyWindow()又发送WM_DESTROY                                                **
  响应WM_DESTROY,调用WM_QUIT                                                    **
  GetMessage()发现WM_QUIT,退出程序                           **
  ******************************************************************************************
  可以看出,程序一旦退出main(WinMain)函数,应用程序即会结束,所以在实际应用中大多数程序的main函数中都是一个循环,
  以持续完成需要的工作。