【框架-MFC】动态修改CDialog或CDialogEx的Border属性

CDialog或CDialog的Border属性包含(Dialog Frame、Thin、None、Resizing)

Dialog Frame

普通属性:WS_CAPTION | WS_POPUP | WS_SYSMENU |WS_CLIPSIBLINGS | DS_MODALFRAME

扩展属性:WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE

Thin

普通属性:WS_CAPTION | WS_POPUP | WS_SYSMENU |WS_CLIPSIBLINGS | DS_MODALFRAME

扩展属性: WS_EX_WINDOWEDGE

None

普通属性: WS_POPUP | WS_SYSMENU | WS_CLIPSIBLINGS

扩展属性:无

Resizing

普通属性:WS_CAPTION | WS_POPUP | WS_SYSMENU |WS_CLIPSIBLINGS | DS_MODALFRAME | WS_THICKFRAME

扩展属性:WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE

 

动态修改代码

enum
    {
        Border_None         = 0,
        Border_Dialog_Frame= 1,
        Border_Thin         = 2,
        Border_Resizing     = 3,
    };
 
void CMyDlg::SetBorder(UINT nBorder   )
{
    SetWindowPos(NULL,0,0,-1,-1,SWP_HIDEWINDOW);
    if (Border_Dialog_Frame == nBorder )
    {
        ModifyStyle(WS_CAPTION| WS_POPUP | WS_SYSMENU | WS_CLIPSIBLINGS | DS_MODALFRAME,
            WS_CAPTION| WS_POPUP | WS_SYSMENU | WS_CLIPSIBLINGS | DS_MODALFRAME,NULL);
        ModifyStyleEx(WS_EX_DLGMODALFRAME| WS_EX_WINDOWEDGE,WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE,NULL);
    }
    else if(Border_Thin ==nBorder)
    {
        ModifyStyle(WS_CAPTION| WS_POPUP | WS_SYSMENU | WS_CLIPSIBLINGS | DS_MODALFRAME,
            WS_CAPTION| WS_POPUP | WS_SYSMENU | WS_CLIPSIBLINGS | DS_MODALFRAME,NULL);
        ModifyStyleEx(WS_EX_DLGMODALFRAME| WS_EX_WINDOWEDGE,WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE,NULL);
    }
    else if(Border_None ==nBorder)
    {
        ModifyStyle(WS_CAPTION| WS_POPUP | WS_SYSMENU | WS_CLIPSIBLINGS | DS_MODALFRAME,
            WS_POPUP| WS_SYSMENU | WS_CLIPSIBLINGS ,NULL);
        ModifyStyleEx(WS_EX_DLGMODALFRAME| WS_EX_WINDOWEDGE,NULL,NULL);
    }
    else if(Border_Resizing ==nBorder)
    {
        ModifyStyle(WS_CAPTION| WS_POPUP | WS_SYSMENU | WS_CLIPSIBLINGS | DS_MODALFRAME,
            WS_CAPTION| WS_POPUP | WS_SYSMENU | WS_CLIPSIBLINGS | DS_MODALFRAME|WS_THICKFRAME,NULL);
        ModifyStyleEx(WS_EX_DLGMODALFRAME| WS_EX_WINDOWEDGE,WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE,NULL);
    }
}
 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值