我在程序里这样做:
   CStatic m_Static;
   ......
   m_Static.ModifyStyleEx(0,WS_EX_CLIENTEDGE,TRUE);
ModifyStyleEx返回为1,但是静态控件的Style没有变,这是为什么?

解决方案 »

  1.   

    我看到有个程序里面是这样做的:
    ::SetWindowLong (m_Static.GetSafeHwnd(), GWL_STYLE, style)
    我当时还在奇怪,为什么要这么做,看来是非得这么做啊!
      

  2.   

    你试试这样做:
    m_static.ModifyStyleEx(WS_EX_LEFT,WS_EX_RIGHT|WS_EX_CLIENTEDGE);
      

  3.   

    LONG lSytle=::GetWindowLong(m_Static.GetSafeHwnd(),GWL_STYLE);
    lSytle|=WS_EX_CLIENTEDGE;
    ::SetWindowLong(m_Static.GetSafeHwnd(),GWL_STYLE,lSytle);
      

  4.   

    现在static的style可以改变,但是再想改回来就不行了:void CSendMailAddressStatic::OnLButtonDown(UINT nFlags, CPoint point) 
    {
    ModifyStyleEx(WS_EX_LEFT, WS_EX_RIGHT|WS_EX_CLIENTEDGE);
    CStatic::OnLButtonDown(nFlags, point);
    ModifyStyleEx(WS_EX_RIGHT|WS_EX_CLIENTEDGE, WS_EX_LEFT);
    }为什么不行呢.