Schreibgeschütztes EditFeld mit white-Hintergrund, wie?



  • Hallo!

    ich stehe hier grad vor einem Problem, das ich ein Schreibgeschütztes (nicht Disabled!) Editfeld habe und der hintergrund von dem aber grau ist. Ich will aber das es weis bleibt, wie mache ich das?

    THX



  • GetDlgItem(ID_MYEDIT)->EnableWindow(TRUE);
    GetDlgItem(ID_MYEDIT)->ModifyStyle(0,WS_DISABLED)
    


  • Naja, es erfüllt die sache zwar, allerdings habe ich da einen SpinButton drin, und den würde ich noch ganz gerne benutzen...

    Und der ist jetzt disabled, wenn ich WS_DISABLED setze...

    Also nochmal genauer, ich habe ein edit-feld mit einem spinbutton, der NUR über diesen button verändert werden darf. der hintergrund des edit-feldes sollte weis bleiben.



  • Read-only or disabled edit controls do not send the WM_CTLCOLOREDIT message; instead, they send the WM_CTLCOLORSTATIC message.



  • Hmm, wenn ich nur wüsste was ich damit anfangen soll...



  • Schau mal in die FAQ.



  • Hmm, ich habe jetzt das mit OnCtlColor gemacht, aber er macht nur den Hintergrund von den zahlen weis, der rest von dem EditFeld bleibt grau, wie kann ich den rest weis machen?

    HBRUSH COptionsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
        HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    
        if (pWnd->GetDlgCtrlID()==IDC_SCANTIME)
        {
            pDC->SetBkColor(RGB(255,255,255));
        }
        return hbr;
    }
    


  • Ok, hab's gelöst...

    und zwar so:

    HBRUSH COptionsDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
    {
        HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    
        if (pWnd->GetDlgCtrlID()==IDC_SCANTIME)
        {
            pDC->SetBkColor(RGB(255,255,255));
            CBrush Brush;
            Brush.CreateSolidBrush(RGB(255,255,255));
            hbr = (HBRUSH)Brush;
        }
        return hbr;
    }
    

Log in to reply