本人想实现如下功能:单击一按钮,要使界面中的某些编辑框置灰;单击另一按钮,这些编辑框又恢复原先背景。我知道有人会说用ReadOnly 可以实现,但是我这边不行,请问各位大侠,还有哪些方法?

解决方案 »

  1.   

    ReadOnly是将编辑框设置为只读,不接受输入,你到底想要什么功能,只是改变编辑框背景色?
      

  2.   

    BOOL EnableWindow(
      HWND hWnd,     // handle to window
      BOOL bEnable   // enable or disable input
    );
    EnableWindow(::GetDlgItem(hParent,IDC_EDIT1),FALSE);
      

  3.   

    WM_CTLCOLOR 消息不知道能不能满足你的需求
      

  4.   

    ON_WM_CTLCOLOR()
    HBRUSH CXXX::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
        HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);    // TODO:  在此更改 DC 的任何属性
        switch (nCtlColor)
        {
            case CTLCOLOR_STATIC:
                pDC->SetBkMode(TRANSPARENT);
                hbr = ::CreateSolidBrush(m_RGB(255, 255, 255));
                break;
            default:
                break;
        }    // TODO:  如果默认的不是所需画笔,则返回另一个画笔
        return hbr;
    }
    查一下 MSDN 这里的 nCtlColor 类型
      

  5.   

    DavidHsing给的是正解,好像对UI开发比较熟悉。========================================
    提界面问题,UIPower有问必答!
    界面论坛:http://www.uipower.com/bbs
    我们有专员负责网友问题的解答,真诚为你服务!
      

  6.   

    enablewindow只是禁用该编辑框,而无法改变背景
      

  7.   

    有谁能告诉我SetImages 函数怎么用