Windows 窗体显示的“模式方式”与“非模式方式”

10 篇文章 0 订阅
39 篇文章 0 订阅

                                  Windows 窗体显示的“模式方式”与“非模式方式”


     一、Windows 窗体的显示模式

     在Windows中,显示存在作为窗体和对话框要么是有模式的,要么是无模式的。

    “模式”窗体或对话框必须关闭或隐藏,然后您才能继续使用应用程序的其余部分。当我们要显示重要消息的对话框应始终是有模式的。例如 MessageBox 是一个可供您使用的有模式的窗体。

    “无模式”窗体让您在此窗体与另一窗体之间变换焦点,而不必关闭初始窗体。 用户在该窗体显示的同时可继续在任何应用程序的其他位置工作。

    作为编程,执行代码是一条一条向下执行的,“模式”窗体或对话框,是严格执行这一规律,查找问题较容易。“无模式”窗体,执行代码可以跨越出的现对话框(或模块),进入另一窗体或下一段代码。因此,无模式窗体的编程难度更大,因为用户访问这些窗体的顺序可能无法预知。不论用户执行什么操作,都必须使该应用程序的状态保持一致。 工具窗口经常以无模式方式显示。

    通俗理解,“模式”窗体就是一个“栈”,由父窗口,进入子窗口后,退出子窗口,才能返回父窗口。而非“模式”窗口,就是一个“梳子”每个窗口是并列,随时进入指定窗口。

     从代码的执行上,“模式”窗体有暂停键,出现代码任务末完成就暂停。需非“模式”窗体无暂停键,出现代码任务末完成就越过,执行后续的代码。

     二、sPageControl创建的窗口,就得使用非“模式”方式

  Show()   

        以非模式方法显示新的窗体并且立即返回,并不会在当前激活的窗体和新窗体之间创建任何关系;这意味着现存的窗体可以被关闭,而新窗体仍然继续显示。

        三、“模式”

  Showmodal()

     窗口用Showmodal函数显示出来后,程序不会继续自己执行, 而是根据你对这个窗口的操作来执行, ,只有关闭了这个窗口后才会执行。

     Form.ShowModal() 时相当于执行了一个 Call,主窗体是能够处理下一条消息,其它的窗体不接受用户的操作,ShowModal() 以下的代码在 ShowModal() 出的窗体被关闭前是不会被执行的,但并不影响父窗体的消息循环。

     一个窗口用Show过程显示出来后,代码一样往下执行的,即程序会继续执行。

      四、举例
     ShowModal 出来的对话框必须关掉才能处理其他窗体.也就是当前焦点不能转移到其他的窗体上,除非关掉。
     Show 出来的对话框则可以将当前焦点转移到其他界面上。
     Show出来的一般是子窗体。通常对话框叫非模式对话框,ShowModal 出来的是主窗体,叫模式对话框.。
     

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

lyhoo163

你的鼓励,就是我的动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值