• C++语言 对话框程序设计


    #include "Book.h"
    //模式对话框的创建
    CBook book; //定义CBook对象
    book.DoModal(); //调用DoModal方法显示模态对话框
    
    CBook *pbook;
    pbook = new CBook();
    pbook->DoModal();
    delete pbook;
    
    //非模式对话框的创建
    if(!IsWindow(m_book.m_hWnd))
    {
        m_book.Create(IDD_Book, NULL);
    }
    m_book.ShowWindow(SW_SHOW);
    
    //在创建模式对话框时,定义的是局部变量,而创建非模式对话框时创建的是成员变量.在创建模式对话框时,调用DoModal方法创建对话框时,当前纯种被阻塞,直到模式对话框关闭.在关闭模式对话框时,OnOK方法调用完成,局部对象Book的作用域消失,导致调用基类的析构函数释放了窗口资源.因此,对于模式对话框,如果将其关闭,再重新创建不会出现错误.
    //而创建非模式对话框使用的是成员变量,这是有原因的.因为调用Create方法创建对话框不会导致当前的纯种被阻塞,会继续执行其后的代码.如果采用下面的形貌:
    CBook Book;
    Book.Create(IDD_Book, NULL);
    Book.ShowWindow(SW_SHOW);
    //在调用Create方法后,紧接着释放创建的对话框资源,因此执行上述代码,窗口创建并显示后马上就消失了.

    m_Book.SetWindowText("hello"); //设置对话框文本
    m_Book.ModifyStyle(WS_CAPTION, 0, 0); //去除标题栏
    m_Book.ModifyStyle(0, WS_THICKFRAME, 0); //添加WS_THICKFRAME 风格
    m_Book.ModifyStyleEx(0, WS_EX_TOOLWINDOW, 0);//设置工具栏窗口风格(修改对话框的扩展风格)
    m_Book.ModifyStyleEx(0, WS_EX_ACCEPTFILES, 0); //设置Accept files属性
    //其中窗口的扩展风格常量值可以在MSDN中的CreateWindowEx函数的帮助文档中找到.

     
    学习笔记转摘于: 丝酷网 http://www.pythonschool.com/
  • 相关阅读:
    Xpath定位总结
    robotframework运行时后台报错UnicodeDecodeError
    Selenium驱动Microsoft Edge浏览器(基于robotframework框架)的方法
    robotframework自动化测试安装配置
    硬币
    矩阵乘法
    动态规划和凸性优化
    动态规划背包问题--做题小总结
    CSAPP实验attacklab
    信息学奥赛出局?教育部:若提出申请,会认真研究
  • 原文地址:https://www.cnblogs.com/pythonschool/p/2766317.html
Copyright © 2020-2023  润新知