当前位置: 首页 > news >正文

建博会广州网站网站 迁移

建博会广州网站,网站 迁移,微信小程序制作平台哪个好,asp网站建设与设计#xfeff;#xfeff;模式对话框就是不处理它就没法处理父窗口,而非模式对话框就是不用先处理此对话框也可以处理父窗口.例子:在桌面上右击我的电脑,选择属性,弹出系统属性窗口,点击下面的技术支持,弹出技术支持信息,现在再对系统属性窗口进行操作就操作不了,这种叫做模式对…模式对话框就是不处理它就没法处理父窗口,而非模式对话框就是不用先处理此对话框也可以处理父窗口.例子:在桌面上右击我的电脑,选择属性,弹出系统属性窗口,点击下面的技术支持,弹出技术支持信息,现在再对系统属性窗口进行操作就操作不了,这种叫做模式对话框;关闭技术支持信息,在系统属性里选择硬件,点击设备管理器,弹出设备管理器窗口,现在再对系统属性窗口进行操作仍然可以操作,这种就叫做非模式对话框。 在WIN32中模式对话框的创建一般是使用DialogBox来进行创建的。而非模式对话框则是利用CreateWindow来创建的。在MFC或是WTL中模式对话框一般是使用DoModal而非模式对话框的创建则是使用Create。 一、使用中的区别 模式对话框创建后程序的其他窗口便不能进行操作必须将该窗口关闭后其他窗口才能进行操作。而非模式对话框则无需这样它不强制要求用户立即反应而是与其他窗口同时接受用户操作。 二、消息响应的区别 在消息响应方面模式对话框和非模式对话框之间又有着很大的区别。模式对话框工作的时候它有内部的消息泵机制控件之间的交互不用我们人为的去控制系统会帮助我们去处理。非模式对话框则像普通窗口一样则由WinMain中书写的消息循环驱动。但由于是对话框它对一些消息有特殊的处理。因此在消息循环中需要先对对话框提供截获消息的机会。 While (GetMessage(msg, NULL, 0, 0)){if (hDlgModeless 0 || !IsDialogMessage(hDlgModeless, msg)){TranslateMessage(msg);DispatchMessage( msg);}}如果当前取得的消息是对话框的消息IsDialogMessage 将它交由对话消息处理函数处理并返回TRUE。不需要再派发了。 注意这个方法并不是很好用因为当对话框过多的时候处理起来就比较麻烦了。另一种处理的方法是利用子类化控件的方法来处理控件间的交互。 三、销毁的区别 模式对话框的销毁是使用EndDialog而非模式对话框的销毁是使用DestroyWindow.。所以我们在销毁对话框的时候也要对其进行区别。 非模式对话框用户关闭对话框时对话框消息处理函数将收到WM_CLOSE消息接到后调用DestroyWindow以销毁非模式对话框。 模式对话框则一般响应IDOK和IDCANCEL。在PPC上我们对于OK键和X键的处理要注意这点。 四、其他 非模态对话框的模板必须具有Visible风格否则对话框将不可见而模态对话框则无需设置该项风格。更保险的办法是调用ShowWindow(hDialog, SW_SHOW)来显示对话框而不管对话框是否具有Visible风格。  非模态对话框对象是用new操作符在堆中动态创建的而不是以成员变量的形式嵌入到别的对象中或以局部变量的形式构建在堆栈上。通常应在对话框的拥有者窗口类内声明一个指向对话框类的指针成员变量通过该指针可访问对话框对象。 通过调用Create函数来启动对话框而不是DoModal这是模态对话框的关键所在。由于Create函数不会启动新的消息循环对话框与应用程序共用同一个消息循环这样对话框就不会垄断用户的输入。Create在显示了对话框后就立即返回而DoModal是在对话框被关闭后才返回的。众所周知在MFC程序中窗口对象的生存期应长于对应的窗口也就是说不能在未关闭屏幕上窗口的情况下先把对应的窗口对象删除掉。由于在Create返回后不能确定对话框是否已关闭这样也就无法确定对话框对象的生存期因此只好在堆中构建对话框对象而不能以局部变量的形式来构建之。 因为是用new操作符构建非模态对话框对象因此必须在对话框关闭后用delete操作符删除对话框对象。 必须有一个标志表明非模态对话框是否是打开的。这样做的原因是用户有可能在打开一个模态对话框的情况下又一次选择打开命令。程序根据 标志来决定是打开一个新的对话框还是仅仅把原来打开的对话框激活。通常可以用拥有者窗口中的指向对话框对象的指针作为这种标志当对话框关闭时给该指 针赋NULL值以表明对话框对象已不存在了。 注意在C编程中判断一个位于堆中的对象是否存在的常用方法是判断指向该对象的指针是否为空。这种机制要求程序员将指向该对象的指针初始化为NULL值在创建对象时将返回的地址赋给该指针而在删除对象时将该指针置成NULL值。 模态 非模态 形式上 ①一个模式对话框是一个有系统菜单、标题栏、边线等的弹出式窗口。在创建对话框时指定WS_POPUP, WS_SYSMENU, WS_CAPTION和 DS_MODALFRAME风格。即使没有指定WS_VISIBLE风格模式对话框也会被显示。 ②创建对话框窗口时将发送WM_INITDIALOG消息如果指定对话框的DS_SETFONT风格还有WM_SETFONT消息给对话框过程。(对话框的窗口过程由Windows系统提供用户在创建对话框窗口时提供一个对话框过程由窗口过程调用。) ③对话框窗口被创建之后Windows使得它成为一个激活的窗口它保持激活直到对话框过程调用::EndDialog函数结束对话框的运行或者Windows激活另一个应用程序为止在激活时用户或者应用程序不可以激活它的所属窗口Owner window。 ①一个无模式对话框是一个有系统菜单、标题栏、边线等的弹出式窗口。在创建对话框模板时指定WS_POPUP、WS_CAPTION、WS_BORDER和WS_SYSMENU风格。如果没有指定WS_VISIBLE风格无模式对话框不会自动地显示出来。 ②一个无模式对话框既不会禁止所属窗口也不会给它发送消息。当创建一个模式对话框时Windows使它成为活动窗口但用户或者程序可以随时改变和设置活动窗口。如果对话框失去激活那么即使所属窗口是活动的在Z轴顺序上它仍然在所属窗口之上。 创建 DoModal() Create() 销毁 一个应用程序通过调用::EndDialog函数来销毁一个模式对话框。一般情况下当用户从系统菜单里选择了关闭Close命令或者按下了确认OK或取消CANCLE按钮::EndDialog被对话框过程所调用。调用::EndDialog时指定其参数nResult的值Windows将在销毁对话框窗口后返回这个值一般程序通过返回值判断对话框窗口是否完成了任务或者被用户取消。 ※ EndDialog(IDC_BUTTON_DEFAULT);我们的代码中EndDialog方法在指定的BUTTON处理事件结束时调用,来关闭对话框 在应用程序结束之前它必须销毁所有的无模式对话框。使用::DestroyWindow销毁一个无模式对话框不是使用::EndDiaLog。一般来说对话框过程响应用户输入如用户选择了“取消”按钮则自动调用::DestroyWindow如果用户没有有关动作则应用程序必须调用::DestroyWindow。
http://wiki.neutronadmin.com/news/373644/

相关文章:

  • 北辰正方建设集团有限公司官方网站wordpress会员查看
  • 刚做的网站在百度上搜不到郑州微信公众号网站建设
  • 基于iview的网站开发模板网站规范建设情况
  • 闽侯福州网站建设南宁网站建设工具
  • ps中网站页面做多大的微信做单子的网站源码
  • 泰安建材网站建设电话全球速卖通网址
  • 网站服务器如何做端口映射wordpress 正在维护
  • 网站代备案流程如果修改wordpress后台登录域名
  • 网站建设有哪些优质公众号wordpress页面添加按钮
  • 金华免费模板建站网站代码图片
  • 二七区网站建设网站规划
  • 铜仁市网站建设网站设计公司 广州
  • 网站开发费的会计处理软件技术是什么
  • 南通优普网站建设制作国外好用的网站
  • 如何在外管局网站上做a合同网店托管被骗了3000
  • 网站专栏建设情况兰州网站制作公司
  • 网站备案工信部网页设计代码单词
  • 怎么做网站背景企业做网站需要花多少钱
  • 学会计算机编程可以做网站吗郴州网站推广
  • 在哪网站可以做农信社模拟试卷建一个全部由自己控制的网站需要多少钱
  • 512m内存做网站修改wordpress 字体
  • 网站开发技术发展趋势推广普通话文字素材
  • 网站建设属于税收便民信息发布平台
  • js效果网站网站设计的机构
  • 企业建网站解决方案wordpress页脚如何修改
  • 深圳做微商网站wordpress 评论界面
  • 巴中移动网站建设wordpress 增删改查 函数
  • 广东seo站外推广折扣网页链接制作生成
  • 中国建设银行手机银行网站Tp5即做网站又提供api接口
  • 河南建达工程建设监理公司网站长沙网络营销顾问