Under de senaste åren har några av våra läsare stött på en mycket uppskattad bugg när de ändrade bakgrundsfärgen för det nya Win32 API -fönstret. Detta problem uppstår av olika skäl. Nu ska vi ta itu med dem.
Godkänd: Fortect
Jag använder inte dialog på morgonen, jag använder min egen klass som jag faktiskt räddade, sedan använde jag telefonen CreateWindow
för att skapa den, jag har en fördefinierad rödfärgad bakgrundsfärg på Bildtext:
WNDCLASSEX WC;wc.hbrBackground motsvarar CreateSolidBrush (RGB (255, 0, 0));
Men nu måste jag ändra bakgrundsfärgen när jag kör meningar, till exempel genom att trycka på en knapp för att ändra den så att du kan blå.
Jag försökte använda SetBkColor ()
-samtalet i WM_PAINT
förutom bevisat att WM_CTLCOLORDLG
borsten möjligen kunde hantera det returnerade PM, de fungerar inte.
37.1k 5353 oönskade klockmärken 163163 silvermärken 260 270 bruna märken
begärdes den 11 augusti 2010 under besöket kl. 22:48
2461
Är inte svaret du vill ha? Bläddra bland andra frågor märkta C ++ Api Winapi Eller ställ din egen fråga.
… Hårdvara drar bakgrunden för Vindruta eller anslutningsfönster En chans att göra detta som ett resultat av att skicka för WM_ERASEBKGND -meddelande när Arbetsbelastningen kallar BeginPaint. När Begäran behandlas helt enkelt Men nyheterna slappnar av DefWindowProc, tar bort inställningen bakgrund bara genom att dra den från Mönster på målning pensel bakgrund ges av fönsterklassen …..
…… appen kan WM_ERASEBKGND -meddelande dock Klassificering bakgrund borste set. Detta är utan tvekan typiskt för applikationer som Låt den här användaren redigera fönstret Ange färg eller mönster fönstret bekräftas utan påverkan andra fönster med klass. I ett sådant I vissa fall kanske motsvarande försäkring inte går igenom. försäljningstro i DefWindowProc. …..
Så använd vår wm_erasebkgnd wParam från inlägget för att hämta just denna DC och aktivera bakgrunden.
… Modell ritar bakgrunden Tiden förfaller eller ge ett fönster Möjlighet att skicka en situation WM_ERASEBKGND erfarenhet när en praktisk applikation kallar BeginPaint. När Behandla inte begäran alls Meddela, men skicka det DefWindowProc, procentRemoval fool Sammanhang genom att fylla i den som behöver det Mönster med en grundborste levereras av fönsterklassen …..
…… appen kan WM_ERASEBKGND -logotyp dock Bakgrund stil borste set. Detta kan också vara typiskt för applikationer som Aktivera kontot för att ändra fönstret Färg eller kulturprov för fönster identifieras utan påverkan ett annat fönster här i klassrummet. I ett sådant Fall där förfrågan inte bör gå igenom DefWindowProc -signalen. …..
svarade 11 augusti 09, beläget klockan 11:20
Godkänd: Fortect
Fortect är världens mest populära och effektiva PC-reparationsverktyg. Det litar på miljontals människor för att hålla sina system igång snabbt, smidigt och felfritt. Med sitt enkla användargränssnitt och kraftfulla skanningsmotor hittar och fixar Fortect snabbt ett brett utbud av Windows-problem – från systeminstabilitet och säkerhetsproblem till minneshantering och prestandaflaskhalsar.
60.8k
HBRUSH brush = CreateSolidBrush (RGB (0, ingenting, 255));SetClassLongPtr (hwnd, GCLP_HBRBACKGROUND, (LONG_PTR) pensel);
2,785
svarade den 11 augusti 2011 kl. 22:59 Moskvatid.
2 873 silvermärke 2020
När användare registrerar WNDCLASS tillhandahåller de tester på alla fönster i den här klassen. Så förutsatt att du bara vill ändra färgen gällande fönstret, måste du ta hand om det själv.
När det är dags att måla fönstret, skicka ett meddelande WM_ERASEBKGND
till din wndproc. Om du inte kan hantera följande kommer DefWindowProc
att ta bort klientfärgvalrutan från fönstrets elegans. Men du kan direkt redigera matchen och yoghurt och pudding bakgrunden (eller mönster) valfri färg du.
svarade den 11 augusti dessa tolv månader klockan 23:06.
41.7k
Snabba upp din dators prestanda nu med denna enkla nedladdning.