Win API, aneb potřebuju óhromně velkého hinta – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Win API, aneb potřebuju óhromně velkého hinta – C / C++ – Fórum – Programujte.comWin API, aneb potřebuju óhromně velkého hinta – C / C++ – Fórum – Programujte.com

 

Honzik0
Newbie
14. 6. 2006   #1
-
0
-

Zkou??m p?es Dev-c++ n?co naprogramovat, ale dev c++ mi to v?t?inou nebere
?ryvek k?du:
case VK_ESCAPE:
MessageBox(hWnd,TEXT("nZpravanAhoj!"),TEXT("System Error"),
MB_OK|MB_ICONERROR);
return 0;
case WM_PAINT:
GetClientRect(hWnd, &rect);
hDC=BeginPaint(hWnd, &ps);
SetMapMode(hDC, MM_ANISOTROPIC); *
SetWindowExtEx(hDC, 100, 100, NULL); *
SetViewportExtEx(hDC, rect.right, rect.bottom, NULL); *
Polyline(hDC, aptStar, 6); *
DrawText(hDC, TEXT("Fall To Go"), -1, &rect,
DT_SINGLELINE|DT_TOP|DT_RIGHT|DT_VCENTER);

EndPaint(hWnd, &ps);


VK_ESCAPE je zde definov?n jako zm??knut? kl?vesy Esc, jen?e p?i zm??knut? se nic nestane... nav?c ??dky ozna?en? * jsou kompil?torem ozna?eny linkererror@ a n?jak? ??slo.... Toto samoz?ejm? nejsou jedin? errory, tak?e jsem se cht?l zeptata jestli by tady nikdo nev?d?l ozna?en? pro r?zn? v?ci (nap? WM_KEYDOWN je zm??knut? kl?vesy atd. nebo pro funkce...nap? jak upravit toto nebo n?co jin?ho).
P?edt?m jsem docela dlouho hledal na netu ale knihovny MSDN jsou pouze pro visual a ofici?ln? str?nky jsou sp??e na okrasu..., ale nejlep?? co jsem k devc++ na?el bylo forum o n?m na http://sourceforge.net/forum/forum.php?max_rows=25&style=ultimate&offset=25&forum_id=48211
SourceForge.net:ale p?ece jenom n?jak? str?nka s informacemi by taky nebyla ?patn? !

Nahlásit jako SPAM
IP: ...–
Profesionálně zdeformovaný matematik
Honzik0
Newbie
14. 6. 2006   #2
-
0
-

I kdy? pokud chcete vid?t, co v?echno si m??ete v dev c++ dovolit otev?ete n?kter? ze soubor? v slo?ce include, kter? je jednou ze slo?ek devc++

Nahlásit jako SPAM
IP: ...–
Profesionálně zdeformovaný matematik
Farundel0
Super člen
14. 6. 2006   #3
-
0
-

V zivote jsem s WinAPI nepracoval (a doufam, ze jeste dlouho nebudu muset), ale zkus sem ten kod hodit pokud mozno cely, takhle moc lidi nepozna, v cem je chyba...

Nahlásit jako SPAM
IP: ...–
To follow the path:
look to the master,
follow the master,
walk with the master,
see through the master,
become the master.
Honzik0
Newbie
14. 6. 2006   #4
-
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("Nazdárek celičkej světe:-)");
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_QUESTION);
wc.hIconSm = NULL;
wc.hCursor = (HCURSOR)LoadCursor(NULL, IDC_CROSS);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+15);
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,SW_SHOWMAXIMIZED);
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)
{
HDC hDC;
PAINTSTRUCT ps;
RECT rect;
const POINT aptStar[6] = {50,2, 2,98, 98,33, 2,33, 98,98, 50,2};
switch(message)
{
case VK_ESCAPE:
MessageBox(hWnd,TEXT("nZpravanJo kdo umí ten umí"),TEXT("Systém"),
MB_YESNO|MB_ICONQUESTION);
return 0;
case WM_PAINT:
GetClientRect(hWnd, &rect);
hDC=BeginPaint(hWnd, &ps);
/*SetMapMode(hDC, MM_ANISOTROPIC);
SetWindowExtEx(hDC, 100, 100, NULL);
SetViewportExtEx(hDC, rect.right, rect.bottom, NULL);
Polyline(hDC, aptStar, 6);*/
Ellipse(hDC,11,12,13,14);
DrawText(hDC, TEXT("Fall To Go"), -1, &rect,
DT_SINGLELINE|DT_TOP|DT_RIGHT|DT_VCENTER);

EndPaint(hWnd, &ps);

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


//je to v podstatě jen začáteční okno.....do kterého jsem přidal akorát text a
//pár dalších maličkostí....

Nahlásit jako SPAM
IP: ...–
Profesionálně zdeformovaný matematik
14. 6. 2006   #5
-
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("Nazdárek celičkej světe:-)");
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_QUESTION);
wc.hIconSm = NULL;
wc.hCursor = (HCURSOR)LoadCursor(NULL, IDC_CROSS);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+15);
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,SW_SHOWMAXIMIZED);
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(wParam)
{
case VK_ESCAPE:
MessageBox(hWnd,TEXT("nZpravanJo kdo umí ten umí"),TEXT"Syst?m"),MB_YESNO|MB_ICONQUESTION);
return 0;
}

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

Nahlásit jako SPAM
IP: ...–
14. 6. 2006   #6
-
0
-

A to WM_PAINT, o kterym si psal na zacatku me v dev-cpp bez problemu prelozi... :ehh:

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
14. 6. 2006   #7
-
0
-

Popravdě - než něco začnu používat, měl bych se podívat, co to vlastně používám a nezačít okamžitě psát na fórum s tím že se někdo ozve, resp. měl bych se něco naučit.
První věc klávesa. Nikdy jsem s klávesama nepracoval, ale podle toho co vidím tam máš podmínku VK_ESCAPE, což není zpráva (Windows Message - WM_), ale řekl bych že je to příznak stisknutý klávesy.
Druhá věc SetWindowExtEx a ty ostatní. Nevim kde si je sebral, ale na MSDN trvalo 5s najít že funkce SetWindowExtEx má v použití napsáno Library: Use Gdi32.lib. Takže je naprosto jasné že ti to nebude fungovat, když nezadáš parametr pro linker.

Nahlásit jako SPAM
IP: ...–
14. 6. 2006   #8
-
0
-

Asan napsal:

Popravd? - ne? n?co za?nu pou??vat, m?l bych se pod?vat, co to vlastn? pou??v?m a neza??t okam?it? ps?t na f?rum s t?m ?e se n?kdo ozve, resp. m?l bych se n?co se nau?it.
Prvn? v?c kl?vesa. Nikdy jsem s kl?vesama nepracoval, ale podle toho co vid?m tam m?? podm?nku VK_ESCAPE, co? nen? zpr?va (Windows Message - WS_), ale ?ekl bych ?e je to p??znak stisknut? kl?vesy.
Druh? v?c SetWindowExtEx a ty ostatn?. Nevim kde si je sebral, ale na MSDN trvalo 5s naj?t ?e funkce SetWindowExtEx m? v pou?it? naps?no Library: Use Gdi32.lib. Tak?e je naprosto jasn? ?e ti to nebued fungovat, kdy? nezad?? parametr pro linker.



Windows Message - ?WM_ ...?

Nahlásit jako SPAM
IP: ...–
Adam Streck0
Stálý člen
14. 6. 2006   #9
-
0
-

Omlouvám se, upsal jsem se, samozřejmě WM.
BTW: Pokud nastavíš v Dev-Cpp projekt jako windows application, knihovna gdi32 se linkuje automaticky.

Nahlásit jako SPAM
IP: ...–
midin
~ Anonymní uživatel
320 příspěvků
12. 11. 2006   #10
-
0
-

nevim jak vam ale me to normalne funguje:)

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

Podobná vlákna

Win API — založil Midnight

Win 32 API — založil radvis

Win 32 api Dialogy — založil whysper

Klávesnice ve Win API — založil Adam Streck

Psaní Win API — založil matesz

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ý