Winapi pozadí Edit boxu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Winapi pozadí Edit boxu – C / C++ – Fórum – Programujte.comWinapi pozadí Edit boxu – C / C++ – Fórum – Programujte.com

 

vollf820
Stálý člen
20. 7. 2009   #1
-
0
-

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

Nahlásit jako SPAM
IP: 85.132.191.–
vollf820
Stálý člen
20. 7. 2009   #2
-
0
-

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 ...

Nahlásit jako SPAM
IP: 85.132.191.–
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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 37 hostů

Podobná vlákna

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

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý