textbox (NewLine && Hintergrundsfarbe)



  • hi ich möchte in einer textbox '\n' s haben, jedoch erscheinen diese als |...
    ich hab das so

    SetDlgItemText(hwnd, IDC_READ, "/*******************************/\n
    

    und ich möchte, dass man in die textbox nichts hineinschreiben kann, jedoch deren hintergrundsfarbe weiß ist 😃

    Ich bedanke mich schon einmal :p

    P.S.:
    wie mache ich so ein manifest, sodass alles im WinXP-Style ist?
    ich habe schon gesucht, aber das was da stand funktioniert bei mir nicht..



  • Also wenn Du mit "hi ich möchte in einer textbox '\n' s haben" das Einfügen von New-Line Zeichen meinst, dann heißt das bei einem Edit-Control "\r\n" und in einem Static-Control '\n'. Falls Dein Edit-Control nicht auf 'multi-line' eingstellt ist, kann das natürlich auch nicht funktionieren: Style-Flag ist ES_MULTILINE.

    Für die Hintergrundfarbe schreibst Du einen Message-Handler für die Nachricht WM_CTLCOLORSTATIC und gibst folgendes zurück:

    return (reinterpret_cast<LRESULT>(GetStockObject(WHITE_BRUSH)));
    

    Bei einem Dialog ist der Zieltyp beim Cast nicht LRESULT sondern INT_PTR.

    roflcopter schrieb:

    P.S.:
    wie mache ich so ein manifest, sodass alles im WinXP-Style ist?
    ich habe schon gesucht, aber das was da stand funktioniert bei mir nicht..

    Was heißt konkret 'funktioniert nicht ? Welchen Compiler/IDE verwendest Du ?



  • ich habe ein edit-control mit multiline
    hmm escape-r + escape-n probiere ich gleich mal aus danke..

    das mit der hintergrundsfarbe erscheint mir im moment noch zu kompliziert...

    ich benutze MSDEV 6.0



  • Deine Anwendung mit VC6 im XP-Stil hier n Link http://www.winapi.net/index.php?inhalt=t8



  • roflcopter schrieb:

    das mit der hintergrundsfarbe erscheint mir im moment noch zu kompliziert...

    😮 🙄 ...oha, also das ist doch pippifax^^:

    // in Deiner WndProc:
    // ...
      case WM_CTLCOLORSTATIC:
         if(GetWindowLongPtr(reinterpret_cast<HWND>(lParam), GWL_ID) == EBX_ID_DEINER_EDITBOX)
         {
            SetBkMode(reinterpret_cast<HDC>(wParam), TRANSPARENT);
            return (reinterpret_cast<LRESULT>(GetStockObject(WHITE_BRUSH)));
         }
         break;
    // ...
    


  • Ist reinterpret_cast nicht ein C++ Befehl?
    Ich verwende C <.<



  • Dann eben So 😃

    case WM_CTLCOLORSTATIC:
    if(hWnd, IDDEINEDIT == (HWND)lParam)
    {
      SetBkMode   ((HDC)  wParam, TRANSPARENT); 
      SetBkColor  ((HDC)  wParam, RGB (  255, 255, 255));
      return (long)CreateSolidBrush(RGB( 255,  255, 255));
    }
    break;
    


  • roflcopter schrieb:

    Ist reinterpret_cast nicht ein C++ Befehl?
    Ich verwende C <.<

    Jo, sry alternativ, den C-Cast: (Type)

    Ascharan schrieb:

    Dann eben So 😃

    case WM_CTLCOLORSTATIC:
    if(hWnd, IDDEINEDIT == (HWND)lParam)
    {
      SetBkMode   ((HDC)  wParam, TRANSPARENT); 
      SetBkColor  ((HDC)  wParam, RGB (  255, 255, 255));
      return (long)CreateSolidBrush(RGB( 255,  255, 255));
    }
    break;
    

    Ne dat ist Mist, da gibts GDI-Leaks ⚠ .


Anmelden zum Antworten