Stránka 7 z 7
Napsal: stř 17. říj 2007, 17:32
od Coburn
nn, obyčejnýho obdelníku, do kterýho můžu natáhnout listview, jiný okno atd.
kód mám na jiném pc, kdyby to pořád nešlo, tak ho pošlu.
Jinak jestli bys mi jednoduše popsal jak nakreslit graf. čtverec, trojuhelnik, pripadne mnohouhelnik, bylo by to taky zajímavý
Chtěl bych se hlavně zeptat, jestli je možné nějakým způsobem z winapi aplikace odesílat a přijímat data ze serveru běžícim na php.
A jako poslední věc mám takovej menší problémek - když mám winapi aplikaci s hlavním oknem udělaným v resource editoru, tak se mi buttonky, checkboxy apod. při resizu "rozmažou", neboli zanechávají stopy na pozadí okna. Dá se to nějak vyřešit?
Díky moc, hlavně bych prosil radu s tim serverem.
Napsal: pát 19. říj 2007, 15:13
od €agle
Snaz se taky trochu sam

Kdyz pochopis, jak pracujou dialogy ve Windows (coz uz bys ted snad nejak mel vedet), tak ti bude jasne, ze na vytvoreni podokna (ctverce) staci zavolat funkci CreateWindow() s vhodnymi parametry (class Static, rozmery, parent handle a ze stylu hlavne WS_CHILD). Vsechno potrebne je na
MSDN, staci tomu venovat trochu casu a precist si to...
Na zakladni grafiku se ve Windows pouziva GDI, pripadne GDI+. Veskera dokumentace je opet na
tady na MSDN. Zakladni postup postup treba pri kresleni cary je, ze ziskas kontext okna (GetDC), vytvoris pero pozadovanych parametru (CreatePen), nastavis ho danemu kontextu (SelectObject) a nakreslis caru (LineTo). Kdyz skoncis s kreslenim, znicis pero (DeleteObject) a releasnes kontext (ReleaseDC).
Na komunikaci se serverem potrebujes nejakou tridu pro sitovou komunikaci. Nejjednodussi je pouzit nejakou externi. Kdyz das do googlu "c++ http" (bez uvozovek), najde ti to spoustu prikladu na komunikaci aplikace se serverem.
Co se toho posledniho tyce, najak si to neumim predstavit, kdyztak hod screen, at je to jasnejsi
Napsal: pát 9. lis 2007, 22:06
od Coburn
tak já nevim, co dělám plz tady blbě?
Kód: Vybrat vše
HDC hdc = GetDC(hwnd);
HPEN hPen = CreatePen(PS_SOLID, 4, 0x00FF0000);
SelectObject(hdc, hPen);
MoveToEx(hdc, 10, 10, NULL);
LineTo(hdc, 100, 20);
ReleaseDC(hwnd, hdc);
DeleteObject(hPen);
Thx
Napsal: sob 10. lis 2007, 21:13
od €agle
Od pohledu to vypada vsechno spravne... Co ti na tom nefunguje? Ja kdyz to dam do programu, tak to normalne nakresli modrou caru...
Napsal: ned 11. lis 2007, 19:05
od Coburn
ok, už chápu, dal jsem to do špatný částin kódu...
potom jsem chtěl zjistit pozici myši v hlavnim okně, hledal jsem na msdn, ale našel jsem nějakej ultra dlouhej kód pro C#. Dá se to udělat nějak jednoduše přez winapi?
Díkec

Napsal: ned 11. lis 2007, 21:56
od €agle
Bud muzes monitorovat zpravy (WM_MOUSEMOVE a dalsi souvisejici s mysi), nebo pomoci funkce GetCursorPos ziskas globalni pozici mysi a tu pomoci funkce ScreenToClient prepocitas na relativni pozici v danem okne...
Napsal: úte 13. lis 2007, 16:46
od Coburn
Dík moc
Jako uplně poslední věc, jestli bys něvěděl, jak GDI čáry nebo ellipsy smazat, ale ne všechny.
Hledal jsem a našel jsem tohle, ale moc mi to nepomohlo...
http://www.geocities.com/heartland/mead ... t/gdi.html
thx
Napsal: stř 14. lis 2007, 00:11
od €agle
To zas tak jednoduse nepujde, jelikoz GDI pracuje jenom s vyslednou bitmapou a nikoli s jednotlivymi objekty. Tzn kdyz zavolas LineTo na vykresleni cary, tak GDI jenom nastavi odpovidajici pixely, ale nikde si nepamatuje, ze dane pixely jsou cara. Starani se o jednotlive objekty je zalezitost programatora (je treba nejaka vlastni trida, ktera si je bude pamatovat)... Co se mazani jednoho objektu tyce, tak jsou pak v zasade dve moznosti: bud mu nastavit barvu pozadi a prekreslit ho pres stavajici (tak to delaji v tom co jsi nasel), nebo smazat vsechno a nechat znovu vykreslit vse krome mazaneho objektu.