麻烦大家帮我解决一下这个问题!
1>我想让编辑框不可获取输入焦点,不是变灰!只是不可输入!
2>按了按钮以后可输入,输入完后再按按钮则恢复到不可获取焦点状态,不可输入,同时里面的字体变灰!
怎么实现!

解决方案 »

  1.   

    1>映射EDIT控件的EN_CHANGE消息,然后在消息函数中
    void CCircumvo2Dlg::OnChangeEdit_Unit() 
    {
        if (b_var)
        {
    char ch[10];
    m_unit.GetWindowText(ch,10);
    if ( atoi(ch) != atoi(circu_main.edit_ch))
    {
    m_unit.Clear();
    m_unit.SetWindowText(circu_main.edit_ch);
    }
          }
    }2>定义一个布尔变量,在按钮消息映射函数中进行乒乓处理,设定为真不能输入,否则可输入.
    {
        if (b_var)  b_var = false;
        else        b_var = true;
    }
    如果要字体变灰,需要继承CEdit类,在生成的类中,自定义你的字体颜色.
      

  2.   

    我会在 C***Dlg::OnSetfocusEdit1() 中使用 GetDlgItem()->SetFocus(),
    将焦点转移到其它控件上(如果有 Picture 最好)。第二个问题,用一个 BOOL 变量控制 GetDlgItem()->SetFocus() 的执行,
    再用一个 BOOL 变量判断按钮是否被点击过,若点击过,使编辑框无效就行了,
    用 EnableWindow(FALSE)。
      

  3.   

    就算用棱枫的方法,这种变色也不用派生类,在 OnCtlColor() 中处理就好了,
    不过要再加一个 BOOL 变量。
      

  4.   

    在edit的获取焦点的消息处理函数中杀死焦点不就行了
      

  5.   

    不可输入,
    你在OnSetFocus里面KillFocus就行了。
      

  6.   

    禁止输入KillFocus具体该怎么用,给个例子吧!
      

  7.   

    那需要派生一个 CMyEdit 类,重载 OnSetFocus() 函数。不如我的焦点转移法方便。