小谈wince下模态窗口与非模态窗口

一:创建

非模态窗口的创建

 FiveListWnd();
five->Create(0,0,400,600,m_hWnd, 00);
five
->SetBgColor(RGB(255,255,255))
five
->Show();

模态窗口的创建

 

five.DoModal();

二:两者区别

     其一:模式窗口被打开后就会始终保持输入焦点。除非窗口被关闭,否则用户无法切换到父窗口。   
               非模态窗口则可以讲焦点移到父窗口下。切换窗口可以用Show(False)

     其二:从上面可以看出非模态窗口必须要new

     其三:关闭窗口的方法不同

          非模态窗口要用CWnd::DestroyWindow

          模态窗口要用CDialog::EndDialog

          因为非模态窗口是new出来的 所以最后一定要delete。虽然DestroyWindow(),但实际上窗口实例并未被析构。

三:注意

Create(0,0,400,600,m_hWnd, 00);

 中的m_hWnd是父窗口的句柄。在five窗口也就是子窗口中可以用GetParent()来获得其父窗口的句柄

小谈wince下模态窗口与非模态窗口

相关文章:

  • 2021-04-13
  • 2021-10-27
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-12-04
  • 2021-09-25
  • 2021-06-09
相关资源
相似解决方案