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

50 篇文章 1 订阅
10 篇文章 0 订阅

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


     一、Windows 窗体的显示模式

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

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

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

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

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

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

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

  Show()   

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

        三、“模式”

  Showmodal()

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

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

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

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

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值