Win32 API Clear Screen – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Win32 API Clear Screen – C / C++ – Fórum – Programujte.comWin32 API Clear Screen – C / C++ – Fórum – Programujte.com

 

Atheo+4
Stálý člen
22. 7. 2012   #1
-
0
-

Zdravim chtel bych se zeptat jaky je prikaz nebo  jaka je fce na smazani obrazovky v win32 API aplikaci? Hledal jsem na internetu ale nejak jsem neuspel vsude pisou jen system("cls"); nebo system("clear"); a podobne a to mi v api nejde. Vytvoril jsem si menu kde jsou dve polozky "polozka 1" a "polozka 2" takze program zacina s cistim oknem nicmene jak dam "polozka 1" tak uz mam napsane ze to vytvori nejaky text a podobne a kdyz dam "polozka 2" potom co jsem pouzil "polozka 1" tak se mi vlastne neprepise ten prvni screen (polozka 1) ale jakoby se to na ni nabali tedy pokud mam v polozka 1 napsano "AHOJ" a v polozce 2 "PEPO" tak kdyz kliknu na prvni a pak na druhe tak je tam "AHOJ PEPO" misto jen pepo a proto potrebuju vlastne vymazat ten screen okna aby uz tam bylo jen to pepo...

snad me chapete :D a nezamotali jste se do toho tak jako prave ja:D

Nahlásit jako SPAM
IP: 188.175.140.–
Atheo+4
Stálý člen
22. 7. 2012   #2
-
0
-

#1 Atheo
Opravdu nikdo nevi jak nato? Nebo jsem jen idiot? :D zkusim to trosku priblizit

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* handle the messages */
    {
        case WM_CREATE:{
             
             HMENU hHlavniMenu = CreateMenu();
             HMENU hMenu1 = CreateMenu();
	     

	     AppendMenu(hHlavniMenu, MF_POPUP, (UINT_PTR)hMenu1, "Menu1");
	     AppendMenu(hMenu1, MF_STRING, 1, "Polozka1");
	     AppendMenu(hMenu1, MF_STRING, 2, "Polozka2");

	     SetMenu(hwnd, hHlavniMenu);

	case WM_COMMAND:{
             
             if(LOWORD(wParam) == 1) {
	
	    CreateWindow(TEXT("BUTTON"), TEXT("Button1"), /* Cudlik cislo 1 */
            WS_VISIBLE | WS_CHILD,
            350, 430, 80, 40,
            hwnd, (HMENU) NULL, NULL, NULL);
			
                              
                               }
	      else if(LOWORD(wParam) == 2) {
	
	    CreateWindow(TEXT("BUTTON"), TEXT("Button2"), /* Cudlik cislo 2 */
            WS_VISIBLE | WS_CHILD,
            350, 430, 80, 40,
            hwnd, (HMENU) NULL, NULL, NULL);
			
                                           }
             break;
             }

Zde jak vidite mam vytvorene menu s podminkou ... pokud zmacknu "polozka1" vytvori se cudlik cislo 1 a pokud kliknu na polozku cislo 2 vytvori se cudlik cislo 2 ale tu mame ten problem kdyz kliknu na "polozka 1" vytvori se cudlik... ale pokud kliknu dale na "polozka 2" vytvori se dalsi cudlik hned vedle toho prvniho...

a ja potrebuju aby kdyz kliknu na "polozka1" tak se vytvori cudlik1 a kdyz kliknu na "polozka2" ten prvni cudlik se smaze a vytvori se ten novy v konzolove aplikaci na to je prikaz system("clear"); nebo system("cls"); tusim tak znovu prosim opravu nikdo nevi jak na to v Win32 API aplikaci?

Nahlásit jako SPAM
IP: 188.175.140.–
zlz
~ Anonymní uživatel
634 příspěvků
22. 7. 2012   #3
-
+1
-
Zajímavé

Chceš zrušit/odstranit vytvořené okno, na to je funkce DestroyWindow. cls s tím nemá nic společného.

Nahlásit jako SPAM
IP: 80.188.216.–
Atheo+4
Stálý člen
23. 7. 2012   #4
-
0
-

#3 zlz
Zdravim dik zkusil jsem tam pridat prikaz destroywindow nicmene hlasi mi to chybu v "winuser.h" v radku

 

WINUSERAPI BOOL WINAPI DestroyWindow(HWND);

muj kod pro podminku nyni vypada takto :

case WM_COMMAND:{
             
             if(LOWORD(wParam) == 1) {
             DestroyWindow();
                               }
             
             
             break;
             }
Nahlásit jako SPAM
IP: 188.175.140.–
Atheo+4
Stálý člen
23. 7. 2012   #5
-
0
-

#3 zlz
Zkusil jsem :  

case WM_DESTROY:
            PostQuitMessage (0);       
            break;
        case WM_QUIT:
             DestroyWindow(0);
             break;

a pouzit to tak v podmince :  

             case WM_COMMAND:{
             
             if(LOWORD(wParam) == 1) {
             DestroyWindow (0);
                               } /*  Nefunguje */

               /* Nicene */

             case WM_COMMAND:{
             
             if(LOWORD(wParam) == 1) {
             PostQuitMessage (0);
                               } /* funguje ale toto nepotrebuju */
Nahlásit jako SPAM
IP: 188.175.140.–
liborb
~ Redaktor
+18
Guru
23. 7. 2012   #6
-
0
-

Důležitá věc ve WinApi je ukládat si HWND vytvořeného okna, takže ty tlačítka bys měl dělat nějak takto:

g_hButton = CreateWindow(TEXT("BUTTON"), TEXT("Button1"), /* Cudlik cislo 1 */
            WS_VISIBLE | WS_CHILD,
            350, 430, 80, 40,
            hwnd, (HMENU) NULL, NULL, NULL);

Stačí ti jedna proměnná, protože před vytvořením druhého tlačítka chceš to první zrušit. Takže před vytvořením uděláš něco takového:

if (g_hButton != NULL) {
	DestroyWindow(g_hButton);
	g_hButton = NULL;
}

g_hButton je globální proměnná typu HWND.

Nahlásit jako SPAM
IP: 78.80.52.–
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, 67 hostů

Podobná vlákna

CLear screen — založil Johnnny

Win32 API — založil survik1

Win32 api Font — založil Porcepoque

Kniha o Win32 Api — založil petris123

Správy v Win32 API — založil Rišo Kakaš

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ý