有一个按钮,我想动态改变的它的扩展风格,例如增加Client  edge和static  edge等,我试过用ModifyStyleEx()函数来实现,虽然函数返回TRUE,但是界面上按钮却没有什么变化,UpDataWindow()也没有用,请问该如何动态改变按钮的风格?谢谢!

解决方案 »

  1.   

    用Cbutton类的SetButtonStyle或者向按钮窗口句柄发送消息:(SDK方式)
    ::SendMessage(m_hWnd, BM_SETSTYLE, nStyle, (LPARAM)bRedraw);
      

  2.   

    http://www.codeproject.com/上面有相關的demo
      

  3.   

    什么啊,楼上的诸位,扩展风格!SetButtonStyle只能改BS_开头的风格
      

  4.   

    CButton* pWnd = (CButton*)GetDlgItem(IDC_BUTTON); CFont* pFont = pWnd->GetFont();
    CString strText;
    pWnd->GetWindowText(strText);
    CRect rcWindow;
    pWnd->GetWindowRect(&rcWindow);
    ScreenToClient(rcWindow);
    DWORD dwStyle = pWnd->GetStyle();
    DWORD dwExStytle = pWnd->GetExStyle();
    dwExStytle |= WS_EX_CLIENTEDGE; pWnd->DestroyWindow(); pWnd->CreateEx(dwExStytle,"Button", strText, dwStyle,rcWindow,this,IDC_BUTTON);
    pWnd->SetFont(pFont);
      

  5.   

    EnochShen(小疯子:真的好菜—知耻而后勇!) 的方法不知道行不行?感觉应该可以,不知道各位还有其它更好的方法吗?