Child风格对话框转换成Popup风格对话框

本文介绍如何在不使用两个资源的情况下,通过在对话框类中重写PreSubclassWindow函数,并添加一个标识变量,将嵌入式的CHILD对话框在运行时转换为popup弹出式显示。在PreSubclassWindow中修改窗口风格,去除WS_CHILD和WS_DISABLED,添加WS_POPUP, WS_VISIBLE, WS_SYSMENU和WS_CAPTION。同时,在OnInitDialog中调整对话框的位置,使其居中于主窗口。" 111083900,8566626,SpringBoot个人博客搭建全解析,"['Java', 'Spring Boot', '数据库', 'MySQL', 'Web开发']
摘要由CSDN通过智能技术生成

        对于同一个Dialog资源,在不同的环境中可能需要显示的方式不一样。本人在开发中遇到的就是这种问题,在一种环境中需要的是对话框做嵌入式child显示,而另一处环境需要的是popup弹出式显示,有的人说弄两个资源,一个是子对话内嵌另一个是弹出式对话框,这样又不免重复了。

       首先,资源里的对话框设置为CHILD类型嵌入式对话框,对话框类重写虚函数virtual void PreSubclassWindow(),类中增加一个标识变量(是否模态显示) BOOL  m_bIsModal,

void CMyDlg::PreSubclassWindow() 
{
if ( m_bIsModal)
    {
        if(m_hWnd  !=  NULL)
        {
            //获得当前的风格
            LONG lStyle = GetWindowLong(m_hWnd,  GWL_STYLE);
            
            lStyle &

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值