Zdravím, mám takový menší problém.
Vytvořil jsem si edit box funkci CreateWindowEx, který je normálně bílý. Pozadí okna je modré. Jakmile ale změním velikost okna tažením za okraj, edit box se překreslí na barvu pozadí okna, tedy na modrou. Patrně je to zapříčiněno tím, že při změně velikosti okna se volá zpráva WM_ERASEBKGND která překreslí pozadí (asi i toho editboxu) na barvu, která je definována ve třídě okna.
Poradí mi někdo jak to ošetřit, aby i po změně velikosti okna ten edit box zůstal bílý? Mám pro něj vytvořenou i vlastní proceduru (subclassing) jen potřebuju nakopnout co odkud volat nebo jak to řešit. Už jsem zkoušel vše možné (SetClassLong, SetBkMode, WM_CTLCOLOREDIT, ...) tak budu vděčný za každou pomoc.
Díky
Fórum › C / C++
Winapi pozadí Edit boxu
Tak kdyby měl někdo podobnej problém, už jsem na to přišel :) Řešení jsem vyčetl z příkladu na doublebuffering viz - http://forum.builder.cz/read.php?16,1842218,1842354#msg-1842354
Takže:
V proceduře editu (ne hlavního okna) odchytit zprávu WM_ERASEBKGND a tam to udělat nějak takhle:
case WM_ERASEBKGND:
RECT rc;
GetClientRect(g_EBox, &rc);
HDC BoxDC;
BoxDC = GetDC(g_EBox);
FillRect(BoxDC,&rc,(HBRUSH)GetStockObject(WHITE_BRUSH));
break;
Řešení spočívalo v použití funkce FillRect ...
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 37 hostů
Podobná vlákna
Prenasobenie a scitanie edit boxu — založil Wizard
WINAPI pozadí tlačidla — založil Anonymní uživatel
Teletext do boxu — založil Matěj Andrle
Mazani boxu — založil Hurys
CSS: Řazení boxů — založil Marek Šrám
Moderátoři diskuze