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);
}
}