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

Okno 2 – C / C++ – Fórum – Programujte.comOkno 2 – C / C++ – Fórum – Programujte.com

 

Hanz.S0
Návštěvník
12. 10. 2008   #1
-
0
-

Zdravim, nasel jsem zde na foru jedno vlakno, tykajici se OKNA.

#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
TCHAR szAppName[] = TEXT("UOC - BS Counter");
HWND hWnd;
MSG msg;
WNDCLASSEX wc;

wc.cbSize = sizeof(wc);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hIconSm = NULL;
wc.hCursor = (HCURSOR)LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wc.lpszMenuName = NULL;
wc.lpszClassName = szAppName;

RegisterClassEx(&wc);

hWnd = CreateWindowEx(0,szAppName,
szAppName,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,NULL);
ShowWindow(hWnd, iCmdShow);
UpdateWindow(hWnd);

while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, message, wParam, lParam);
}


Toto je kod, prilozeny nekterymi uzivateli. Mam dotaz, jak zmenim vysku okna? Jak zmenim barvu okna, pokud chci treba obrazek, nebo zelenou. Kam mam psat kod, pokud se jedna o text, ktery chci vlozit do okna. A nakonec jak udelat aktivni odkaz na dalsi cast programu, tzn, ze mam okno ve kterem mam napriklad text Zpravy a pod tim Novinky a kdyz kliknu na zpravy, hodi me to do "dalsi mistnosti" a tam se objevi ty zpravy...

Nahlásit jako SPAM
IP: 85.71.205.–
Programuju, protoze me to bavi. Beru to vazne a chci se to naucit. Proto kazdy vas prispevek mi je pomocnym.
Bald3rr0
Super člen
12. 10. 2008   #2
-
0
-

Výšku okna změníš v CreateWindowEx.
Barvu/Pozadí přiřazuješ wc.hbrBackground.
Text do okna vypíšeš pomocí TextOut.

Jinak ten script nechám někomu jinému, ať si tě "vychutná" :P

Nahlásit jako SPAM
IP: 82.100.0.–
Hanz.S0
Návštěvník
12. 10. 2008   #3
-
0
-

aha, diky moc

jeste bych chtel vedet kam muzu napsat to TEXTOUT do jake casti

a proc je tam 4x
CW_USEDEFAULT,

to jako ze za to neco muzu kdyztak dosadit?

Nahlásit jako SPAM
IP: 85.71.205.–
Programuju, protoze me to bavi. Beru to vazne a chci se to naucit. Proto kazdy vas prispevek mi je pomocnym.
Hanz.S0
Návštěvník
12. 10. 2008   #4
-
0
-

Nojo nojo, me se script plete z HTML

Nahlásit jako SPAM
IP: 85.71.205.–
Programuju, protoze me to bavi. Beru to vazne a chci se to naucit. Proto kazdy vas prispevek mi je pomocnym.
crAzY^
~ Moderátor
+10
Grafoman
12. 10. 2008   #5
-
0
-

To Hanz.S : Konstanty CW_USEDEFAULT ve fci CreateWindowEX; první značí vzdálenost okna od levého okraje obrazovky (x), druhá značí vzdálenost od horní strany obrazovky (y), třetí značí šířku okna, čtvrtá výšku => stačí změnit hodnotu místo CW_USEDEFAULT třeba 640, nebo to je jedno co :)

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
crAzY^
~ Moderátor
+10
Grafoman
12. 10. 2008   #6
-
0
-

To Hanz.S : ano můžeš za to dosadit

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
Hanz.S0
Návštěvník
12. 10. 2008   #7
-
0
-

To crAzY^ :
Jojo diky za vysvetleni, uz mam vlastni velikost.

Nahlásit jako SPAM
IP: 85.71.205.–
Programuju, protoze me to bavi. Beru to vazne a chci se to naucit. Proto kazdy vas prispevek mi je pomocnym.
Bald3rr0
Super člen
12. 10. 2008   #8
-
0
-

To Hanz.S : Do 'události' WM_PAINT

Nahlásit jako SPAM
IP: 82.100.0.–
crAzY^
~ Moderátor
+10
Grafoman
12. 10. 2008   #9
-
0
-

To Hanz.S : v proceduře okna




LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_PAINT:
TextOut(....);
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, message, wParam, lParam);
}

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
Hanz.S0
Návštěvník
12. 10. 2008   #10
-
0
-

To jsem tam hodil a ten textout mi to neveme, hodi to tam chybu (teda ten kontrolor, bo jak se to nazyva)

Nahlásit jako SPAM
IP: 85.71.205.–
Programuju, protoze me to bavi. Beru to vazne a chci se to naucit. Proto kazdy vas prispevek mi je pomocnym.
crAzY^
~ Moderátor
+10
Grafoman
12. 10. 2008   #11
-
0
-

To Hanz.S : a jo máš pravdu, taky mi to dělalo problémy... pak jsem to teda vyřešil takto



case WM_PAINT:
OnWM_PAINT();
break;

a fce
void OnWM_PAINT()

{
PAINTSTRUCT ps;
HDC hDC;
hDC = BeginPaint(g_hwnd, &ps);
TextOut(hDC, 10, 10, "ahoj", 16);
EndPaint(g_hwnd, &ps);
}

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
Hanz.S0
Návštěvník
12. 10. 2008   #12
-
0
-

Mno ted mi to zas nebere OnWM_PAINT()

Nahlásit jako SPAM
IP: 85.71.205.–
Programuju, protoze me to bavi. Beru to vazne a chci se to naucit. Proto kazdy vas prispevek mi je pomocnym.
MaS0
Návštěvník
12. 10. 2008   #13
-
0
-
Nahlásit jako SPAM
IP: 195.146.114.–
Hanz.S0
Návštěvník
12. 10. 2008   #14
-
0
-

Tak to mi moc nepomohlo, kazdopadne dik

Nahlásit jako SPAM
IP: 85.71.205.–
Programuju, protoze me to bavi. Beru to vazne a chci se to naucit. Proto kazdy vas prispevek mi je pomocnym.
crAzY^
~ Moderátor
+10
Grafoman
12. 10. 2008   #15
-
0
-

To Hanz.S : měl si na začátku programu daný prototyp funkce OnWM_PAINT()????? mě to jede normálně

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
MaS0
Návštěvník
12. 10. 2008   #16
-
0
-

pořád nějak nemůžu pochopit, proč by obsah funkce OnWM_PAINT() nemohl být umístěn v case WM_PAINT (pokud se nezapomene za to napsat break;)

Nahlásit jako SPAM
IP: 195.146.114.–
Hanz.S0
Návštěvník
12. 10. 2008   #17
-
0
-

#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
TCHAR szAppName[] = TEXT("UOC - BS Counter");
HWND hWnd;
MSG msg;
WNDCLASSEX wc;

wc.cbSize = sizeof(wc);
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);
wc.hIconSm = NULL;
wc.hCursor = (HCURSOR)LoadCursor(NULL, IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW-3);
wc.lpszMenuName = NULL;
wc.lpszClassName = szAppName;

RegisterClassEx(&wc);

hWnd = CreateWindowEx(0,szAppName,
szAppName,
WS_OVERLAPPEDWINDOW,
300,
150,
640,
300,
NULL,
NULL,
hInstance,NULL);
ShowWindow(hWnd, iCmdShow);
UpdateWindow(hWnd);

while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch(message)
{


case WM_PAINT:
OnWM_PAINT();

break;

void OnWM_PAINT()

{

PAINTSTRUCT ps;

HDC hDC;

hDC = BeginPaint(g_hwnd, &ps);

TextOut(hDC, 10, 10, "ahoj", 16);

EndPaint(g_hwnd, &ps);

}
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hWnd, message, wParam, lParam);

}

Totoz je kod, kterej tam mam. Jestli najdete chybu sem sni.

Nahlásit jako SPAM
IP: 85.71.205.–
Programuju, protoze me to bavi. Beru to vazne a chci se to naucit. Proto kazdy vas prispevek mi je pomocnym.
Hanz.S0
Návštěvník
12. 10. 2008   #18
-
0
-

To crAzY^ :
`OnWM_PAINT' undeclared (first use this function)
Asi nemam, kde ji nahodim?

Nahlásit jako SPAM
IP: 85.71.205.–
Programuju, protoze me to bavi. Beru to vazne a chci se to naucit. Proto kazdy vas prispevek mi je pomocnym.
crAzY^
~ Moderátor
+10
Grafoman
12. 10. 2008   #19
-
0
-

To Hanz.S : je tam více chyb
1) funkci OnVM_PAINT() nemůžeš definovat ve fci WinMain ale až za ní....
2) chybí prototyp fce void OnVM_PAINT() před fcí WinMain

jak tak koukám tak by si měl začít spíše se standardní knihovnou cpp a ne hned win api

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
MaS0
Návštěvník
12. 10. 2008   #20
-
0
-

toto je kód vygenerovanej v CodeBlocks při vytvoření nového WinAPI projektu doplněnej o obsluhu zprávy WM_PAINT......funguje bez problémů

#include <windows.h>


/* Declare Windows procedure */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/* Make the class name into a global variable */
char szClassName[ ] = "CodeBlocksWindowsApp";

int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nCmdShow)
{
HWND hwnd; /* This is the handle for our window */
MSG messages; /* Here messages to the application are saved */
WNDCLASSEX wincl; /* Data structure for the windowclass */

/* The Window structure */
wincl.hInstance = hThisInstance;
wincl.lpszClassName = szClassName;
wincl.lpfnWndProc = WindowProcedure; /* This function is called by windows */
wincl.style = CS_DBLCLKS; /* Catch double-clicks */
wincl.cbSize = sizeof (WNDCLASSEX);

/* Use default icon and mouse-pointer */
wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
wincl.lpszMenuName = NULL; /* No menu */
wincl.cbClsExtra = 0; /* No extra bytes after the window class */
wincl.cbWndExtra = 0; /* structure or the window instance */
/* Use Windows's default colour as the background of the window */
wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

/* Register the window class, and if it fails quit the program */
if (!RegisterClassEx (&wincl))
return 0;

/* The class is registered, let's create the program*/
hwnd = CreateWindowEx (
0, /* Extended possibilites for variation */
szClassName, /* Classname */
"Code::Blocks Template Windows App", /* Title Text */
WS_OVERLAPPEDWINDOW, /* default window */
CW_USEDEFAULT, /* Windows decides the position */
CW_USEDEFAULT, /* where the window ends up on the screen */
544, /* The programs width */
375, /* and height in pixels */
HWND_DESKTOP, /* The window is a child-window to desktop */
NULL, /* No menu */
hThisInstance, /* Program Instance handler */
NULL /* No Window Creation data */
);

/* Make the window visible on the screen */
ShowWindow (hwnd, nCmdShow);

/* Run the message loop. It will run until GetMessage() returns 0 */
while (GetMessage (&messages, NULL, 0, 0))
{
/* Translate virtual-key messages into character messages */
TranslateMessage(&messages);
/* Send message to WindowProcedure */
DispatchMessage(&messages);
}

/* The program return-value is 0 - The value that PostQuitMessage() gave */
return messages.wParam;
}


/* This function is called by the Windows function DispatchMessage() */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message) /* handle the messages */
{
case WM_PAINT:
PAINTSTRUCT ps;
HDC hDC;
hDC = BeginPaint(hwnd, &ps);
TextOut(hDC, 10, 10, "ahoj", 4);
EndPaint(hwnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage (0); /* send a WM_QUIT to the message queue */
break;
default: /* for messages that we don't deal with */
return DefWindowProc (hwnd, message, wParam, lParam);
}

return 0;
}


Nahlásit jako SPAM
IP: 195.146.114.–
Hanz.S0
Návštěvník
12. 10. 2008   #21
-
0
-

Dám F9 a nic. Dole se napíše

[Linker error] undefined reference to `TextOutA@20'
ld returned 1 exit status

Nahlásit jako SPAM
IP: 85.71.205.–
Programuju, protoze me to bavi. Beru to vazne a chci se to naucit. Proto kazdy vas prispevek mi je pomocnym.
MaS0
Návštěvník
12. 10. 2008   #22
-
0
-

když jsem zkusil zkompilovat ten samej kód, z kterýho jsem to sem kopíroval, tak mi to udělalo to samý co tobě, ale když jsem vytvořil nový projekt a přidal do něj znovu obsluhu WM_PAINT tak to fungovalo, jenže když jsem CodeBlocks zavřel a znovu otevřel, tak to už nešlo!!....je to nějaký divný

Nahlásit jako SPAM
IP: 195.146.114.–
Hanz.S0
Návštěvník
12. 10. 2008   #23
-
0
-

To teda jo a nevím proč !!!

Nahlásit jako SPAM
IP: 85.71.205.–
Programuju, protoze me to bavi. Beru to vazne a chci se to naucit. Proto kazdy vas prispevek mi je pomocnym.
MaS0
Návštěvník
12. 10. 2008   #24
-
0
-

tady je část kódu vygenerovanýho ve Visual C++ 6.0

// bbb.cpp : Defines the entry point for the application.

#include "stdafx.h"
#include "resource.h"
#define MAX_LOADSTRING 100


//
// FUNCTION: WndProc(HWND, unsigned, WORD, LONG)
//
// PURPOSE: Processes messages for the main window.
//
// WM_COMMAND - process the application menu
// WM_PAINT - Paint the main window
// WM_DESTROY - post a quit message and return
//
//
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
TCHAR szHello[MAX_LOADSTRING];
LoadString(hInst, IDS_HELLO, szHello, MAX_LOADSTRING);

switch (message)
{
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
// Parse the menu selections:
switch (wmId)
{
case IDM_ABOUT:
DialogBox(hInst, (LPCTSTR)IDD_ABOUTBOX, hWnd, (DLGPROC)About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
break;
case WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
// TODO: Add any drawing code here...
RECT rt;
GetClientRect(hWnd, &rt);
DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER);
EndPaint(hWnd, &ps);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}


}


ten pro změnu používá pro vypsání textu funkci DrawText

důležitý je, že ty kódy jsou víceméně správně a ty si musíš umět přizpůsobit

Nahlásit jako SPAM
IP: 195.146.114.–
Hanz.S0
Návštěvník
13. 10. 2008   #25
-
0
-

Nechci bejt otravnej, ale teď mi to nebere
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)

stdafx.h: No such file or directory.
resource.h: No such file or directory.
`LRESULT' does not name a type
expected unqualified-id before '{' token
`,' or `;' before '{' token
expected declaration before '}' token

Nahlásit jako SPAM
IP: 85.71.205.–
Programuju, protoze me to bavi. Beru to vazne a chci se to naucit. Proto kazdy vas prispevek mi je pomocnym.
Bald3rr0
Super člen
13. 10. 2008   #26
-
0
-

Ve Visual studiu si otevři New Project -> Win32 Project -> Empty
Kód je následující

#include <windows.h>

#include <tchar.h> // Unicode

/////////////////////////////////////////////////////////////////
// Globální proměné
HINSTANCE g_hInstance;
HWND g_hWnd;
const TCHAR szJmenoAplikace[] = TEXT("TextOut");

/////////////////////////////////////////////////////////////////
// OnWM_PAINT()
void OnWM_PAINT(HWND hWnd)
{
HDC hDC = GetDC(hWnd);
SetBkMode(hDC, TRANSPARENT); // Průhledné pozadí textu
TextOut(hDC, 10, 10, _T("Ahoj"), 4);
ReleaseDC(hWnd, hDC);
}

/////////////////////////////////////////////////////////////////
// Zpracování zpráv
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch(uMsg)
{
case WM_PAINT:
OnWM_PAINT(hWnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
}
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}

//////////////////////////////////////////////////////////////////
// Registrace třídy okna a vytvoření okna

BOOL Inicializace()
{
WNDCLASSEX wcex;
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc = (WNDPROC)WindowProc;
wcex.cbClsExtra = 0;
wcex.cbWndExtra = 0;
wcex.hInstance = g_hInstance;
wcex.hIcon = NULL;
wcex.hIconSm = NULL;
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
wcex.hbrBackground = GetSysColorBrush(COLOR_WINDOW);
wcex.lpszMenuName = NULL;
wcex.lpszClassName = szJmenoAplikace;
if(!RegisterClassEx(&wcex))
return FALSE;
g_hWnd = CreateWindowEx(0, szJmenoAplikace, TEXT("TextOut"),
WS_OVERLAPPEDWINDOW,
100, 50, 400, 300,
(HWND)NULL,
(HMENU)NULL,
g_hInstance,
NULL);
if(!g_hWnd)
return FALSE;
ShowWindow(g_hWnd, SW_SHOW);
return TRUE;
}

///////////////////////////////////////////////////////////////////////
// Hlavní fce programu

int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpmCmdLine, int nCmdShow)
{
MSG msg;
g_hInstance = hInstance;
if(!Inicializace())
return -1;
// Hlavní smyčka zpráv
while(GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}


Nechci ti do toho kecat, ale copy&paste neni zrovna nejlepší metoda, jak se naučit programovat.

Nahlásit jako SPAM
IP: 82.100.0.–
Hanz.S0
Návštěvník
13. 10. 2008   #27
-
0
-

cO to jak se ucim programovat se nemusis bat. Ja po vas nechci novej kod, chci jen vedet kde je chyba a vy mi tu davate kody ...

Nahlásit jako SPAM
IP: 85.71.205.–
Programuju, protoze me to bavi. Beru to vazne a chci se to naucit. Proto kazdy vas prispevek mi je pomocnym.
crAzY^
~ Moderátor
+10
Grafoman
13. 10. 2008   #28
-
0
-

už vím v čem je problém s fcí TextOut... v Dev C++ musíš do linkeru přidat parametr -lwsock32

Nahlásit jako SPAM
IP: 89.190.64.–
All you need is vision and time.
Hanz.S0
Návštěvník
13. 10. 2008   #29
-
0
-

Ale funguje, diky. Ted musim najit jak vlozit tlacitko, jak vlozit obrazek a jak vlozit vyberove menu s sipkou

Nahlásit jako SPAM
IP: 85.71.205.–
Programuju, protoze me to bavi. Beru to vazne a chci se to naucit. Proto kazdy vas prispevek mi je pomocnym.
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, 71 hostů

Podobná vlákna

Okno v C++ — založil Algon

Okno - tabuľka — založil Monkey

Okno na pozadi — založil Scrat

1. okno reaguje na 2. — založil Anonymní uživatel

Pop Up okno — založil tonez

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ý