EDIT控件背变景色,例如有五个EDIT控件,还有一个BUTTON,当点击BUTTON时,第一个EDIT控件中的背景变成黑色,字体变成白色,再次点击BUTTON,第二个EDIT控件变色,字体变色,依次类推。各位大虾,该如何实现呢???

解决方案 »

  1.   

    就是说如何能够通过edit控件和左右button来实现类似手机汉字的选择(选中的字变色)
      

  2.   

    lz可在button上绑定一个变量计数,当点击一次时,设一个值,这时改变一个edit的背景和字体格式。
    http://topic.csdn.net/u/20080122/10/120ce3fc-17d9-4cb0-ab9c-44e49812b809.html
    http://topic.csdn.net/t/20021004/16/1072164.html
      

  3.   

           
           COLORREF cr;
    cr=0x000000;
    m_CmdShellRichEdit.SetBackgroundColor(FALSE, cr);
    //以下改变RichEdit内背景和字体颜色
    CHARFORMAT cf;
    cf.cbSize = sizeof(CHARFORMAT);
    cf.dwMask = CFM_COLOR | CFM_FACE |CFM_ITALIC | CFM_SIZE ;  
    cf.dwEffects = CFE_UNDERLINE ;                        //CFE_BOLD(粗体)
    cf.yHeight = 12*20;
    cf.crTextColor = RGB(255, 255, 255);
    strcpy(cf.szFaceName, _T("Times New Roman")); //Times New Roman(Terminal和CMD一样)
    cf.bCharSet = 0;
    cf.bPitchAndFamily = 0;
    m_CmdShellRichEdit.SetDefaultCharFormat(cf);
    //
      

  4.   

    在OnCtlColor中我可以静态的改变每一个EDIT的状态(背景和颜色)但如何在一个button的响音函数里面改变呢??
    void C****DLg::OnBUTTON1()
    {
    ????
    }
      

  5.   

    添加OnCtlColor 函数
    COLORREF  m_TextColor=RGB(0,0,255);
    HBRUSH CSampleDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
    HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

    if ( pWnd->GetDlgCtrlID() == IDC_EDIT_XXX)  //对硬要改变颜色的控件
    {
       pDC->SetTextColor(m_TextColor);//这里用COLORREF来设置颜色,只要改变m_TextColor得值就能变色
       pDC->SetBkColor(RGB(255,255,255));//设置背景颜色 

     //  pDC->SetBkMode(TRANSPARENT); //设置透明 
    // return (HBRUSH)::GetStockObject(NULL_BRUSH);  } return hbr;
    }