Veröffentlicht 14. Juni 200322 j Ich habe ein Dialogfeldbassierendes Projekt mit mehreren dialogen! Ein Dialog müßte jedcoh eine andere Hintergrundfarbe haben! Könnt ihr mir helfen wie ich das mache?? ich benutze Visual Studio 6.0
15. Juni 200322 j Du musst in deiner Dialog-Klasse auf die Message WM_CTLCOLOR reagieren. (In deinem Fall reflected-Message mit nem "=" davor)... Die automatisch generierte Funktion müsste imho CtlColor heissen und bekommt einen cdc übergeben.... hier kannst du mit cdc->SetBKColor die Farbe ändern... Wenn du dazu noch genaueres suchst schau mal auf www.codeguru.com -> Discussion Board auf der linken Seite... Ist zwar auf englisch aber dafür saugut! cya
15. Juni 200322 j am besten reagiert man auf WM_ERASEBKGND case WM_ERASEBKGND: hDC = GetDC(hWnd); GetClientRect(hWnd,&Rect); SelectObject(hDC,CreateSolidBrush(RGB(0,0,0))); Rectangle(hDC,0,0,Rect.right,Rect.bottom); break;
15. Juni 200322 j Achja, bei einer MFC Anwendung sollte man auf WM_CTLCOLOR reagieren und dann einfach einen HBRUSH returnen
16. Juni 200322 j Autor Hab nachgeschaut, aber Englisch ist wohl leider nicht mein fall jetzt hätte ich eine Behandlungsroutinge für die WM_CTLCOLOR eingerichtet => OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) und in dieser Methode hätte ich dann pDC->SetBKColor probiert aber da kommt die meldung dass SetBKColor kein element von CDC ist?!? Was mach ich falsch?!?!?
16. Juni 200322 j Original geschrieben von SwordMaster Was mach ich falsch?!?!? Du schreibst das K groß
17. Juni 200322 j das mit dem HBRUSH zurückgeben gibts auch... Aber ich hab so ein dumpfes Gefühl dass es Fälle gibt in denen man es mit SetBkColor machen muss...
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.