Farbe des Textes an Fenster angleichen. Wie?



  • Hallo,

    also wenn ich ganz normales Fenster erzeuge und dann mit Textout einen Text in das Fenster bringen möchte, dann ist der Text immer mit einem Weißen Hintergrund versehen, jedoch möchte ich das der Text genauso einen Hintergrund hat wie das Fenster.Aber wie macht man das ?? Wäre für Hilfe mal wieder Dankbar. Achja was mir noch einfällt kann mir einer die Funktion von GetWindowLong und SetClassLong erklären, ich werde aus der MSDN nicht schlau 😕 😞



  • die Events so abfangen:

    LRESULT CALLBACK Events_Dialog(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){
    
    	switch (message){
    		case WM_INITDIALOG:
    			break;
    		case WM_CTLCOLORDLG:
    		case WM_CTLCOLORSTATIC:
    			SetTextColor((HDC)wParam, GetSysColor(COLOR_HIGHLIGHTTEXT));			//setzt die Textfarbe
    			SetBkColor((HDC)wParam, GetSysColor(COLOR_HIGHLIGHT));				//setzt den Hintergrund des Textes
    			return (BOOL)CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT));			//und den Hintergrund des Fensters
    		case WM_COMMAND:{
    			break;
    		}
    	}
    	return 0;
    }
    


  • Wieso nicht einfach mit SetBkMode?

    HDC hdc;
    hdc = GetDC(hwnd);  //oder eben BeginPaint...
    SetBkMode(hdc, TRANSPARENT);  //Hintergrundmodus ist nun für den Gerätekontext Transparent
    TextOut(hdc, 10, 10, "Hallo!", 6);
    ReleaseDC(hwnd, hdc);
    


  • danke Moadeh so klappt es hervorragend

    guten rutsch


Anmelden zum Antworten