我用一下代码设置了我的对话框,但是始终有个边框,该怎么去掉呢???ModifyStyle(WS_CAPTION, 0, SWP_DRAWFRAME);
ModifyStyleEx(0, WS_EX_LAYERED);
SetLayeredWindowAttributes(RGB(255,0,0), 0, LWA_COLORKEY);
    不要告诉我右键-》属性->border = none    这个我试了虽然可以;但是却不能响应最小化了。

解决方案 »

  1.   

    怎么就不能响应最小化了?
    ModifyStyle(WS_CAPTION|WS_THICKFRAME,0, SWP_FRAMECHANGED);
      

  2.   

    不要告诉我右键-》属性->border = none 
    这个我试了虽然可以;但是却不能响应最小化了。你可以使用这个属性,在窗体上添加一个按钮来实现最小化的功能
    在按钮函数使用SendMessage(SW_SHOWMAXIMIZED)//最小化不行了吗
      

  3.   

        其实就是想自己通过API来实现 border= none 的效果,只是这里我想在右键点击任务栏的时候,弹出来的菜单中有最小化项
      

  4.   

    使用border none后,自己添加最大化最小化按钮,然后处理...
      

  5.   

        不要告诉我右键-》属性->border = none     这个我试了虽然可以;但是却不能响应最小化了。
    当然不能最小化了,都没这个按钮,怎么响应这消息呢,还是自己添加一个按钮去响应最小化按钮吧。
      

  6.   

    ModifyStyle(WS_CAPTION|WS_DLGFRAME|WS_THICKFRAME, WS_SYSMENU);
      

  7.   

    ModifyStyle(WS_CAPTION|WS_DLGFRAME|WS_THICKFRAME, WS_SYSMENU|WS_MINIMIZEBOX);
      

  8.   

    使用这个的话,窗口不能移动,最小化按钮不能点击。
    使用SetWindowRgn()来重新设置窗体区域试试
      

  9.   

    属性->border = none,加上下面的代码,这样状态栏菜单就有了,对话框中自己加个最小化按钮,WM_MINIMAX响应最小化
    #define WM_MINIMAX WM_USER+100
    BOOL CTestDlg::OnInitDialog()
    {
    CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range.
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    ASSERT(IDM_ABOUTBOX < 0xF000); ModifyStyle(NULL, WS_SYSMENU); CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
    CString strAboutMenu;
    strAboutMenu.LoadString(IDS_ABOUTBOX);
    if (!strAboutMenu.IsEmpty())
    {
    pSysMenu->AppendMenu(MF_SEPARATOR);
    pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    pSysMenu->DeleteMenu(0,MF_BYPOSITION);
    pSysMenu->DeleteMenu(1,MF_BYPOSITION);
    pSysMenu->DeleteMenu(2,MF_BYPOSITION);
    pSysMenu->DeleteMenu(3,MF_BYPOSITION);
    pSysMenu->DeleteMenu(4,MF_BYPOSITION);
    pSysMenu->AppendMenu(MF_STRING,WM_MINIMAX,"最小化");
    }
    }
      

  10.   

    你这样的需求,用SetWindowRgn()算了,把周围一圈切掉
      

  11.   

    谢谢大家,目的达到了。代码如下:ModifyStyle(WS_CAPTION, 0, SWP_DRAWFRAME);
    ModifyStyleEx(0, WS_EX_LAYERED);
    SetLayeredWindowAttributes(RGB(255,0,0), 0, LWA_COLORKEY);/* 创建一个矩形裁剪区域 */
    HRGN hRgn = CreateRectRgn(5, 5, m_pBkImg->GetWidth()-5,m_pBkImg->GetHeight()-5);/* 设置窗口的裁剪区域 */
    SetWindowRgn(m_hWnd, hRgn, true);