[19:34] <@codeguy>: dobra teraz moge pisac hyh :]
[19:35] <@codeguy>: dzisiejszy wyklad bedzie obejmowal absolutne podstawy :]
[19:35] <@codeguy>: jak wszyscy wiemy system windows dziala poprzez okna
[19:35] <@codeguy>: wszystko jest oknem hyh przyciski, pola edycji, listy rozwijalne itp
[19:36] <@codeguy>: jak rowniez wiemy system windows dziala na zasadzie wielowatkowosci
[19:36] <@codeguy>: czyli moze wykonywac wiele programow jednoczesnie
[19:37] <@codeguy>: program dziala jako proces -> dany proces ma watki -> a te maja wezly
[19:37] <@codeguy>: jak wiemy programy pisane dla windowsa sa 32 bitowe przez co wiele zmiennych ma wielkosc wlasnie 4 bajtow
[19:38] <@codeguy>: na poczatek stworzymy sobie przykladowa aplikacje
[19:38] phoenix__: codeguy priv
[19:39] Evill: wszystko wpozadku ?
[19:39] <@codeguy>: czy kazdy ma kompilator ?
[19:39] phoenix__: ja nie ale instaluje
[19:39] <@codeguy>: moze byc devcpp albo visual c++
[19:39] phoenix__: na win praktycznie ja nic nie mam
[19:39] java: kazdy loguje a pozniej bedzie testowal
[19:39] java: :D
[19:39] phoenix__: instaluje devcpp
[19:39] y00da: kej zapuszczam devcpp
[19:39] Prus: gcc?
[19:39] <@codeguy>: moze byc gcc
[19:39] phoenix__: same smieci mam na win
[19:39] Evill: pod linux :)
[19:39] Prus: tak!
[19:39] Prus: :D
[19:40] <@codeguy>: hyh
[19:40] Szejker: phoenix__: a co mozna trzymac w smietniku, jak nie smieci? ;>
[19:40] <@codeguy>: to ja juz zaczne omawiac pierwszy program a potem sobie skompilujecie :]
[19:40] Evill: mozna go pobrac (dvcpp) http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2_nomingw_setup.ex
[19:40] Evill: e
[19:41] <@codeguy>: na poczatek stworzcie sobie nowy projekt
[19:41] phoenix__: codeguy mozesz poczekac
[19:41] <@codeguy>: ok
[19:42] <@codeguy>: :]
[19:42] Evill: codegay : wybrac okienka windows console aplication czy empyty projext ?
[19:43] <@codeguy>: tylko bez gejow evill hyh
[19:43] phoenix__: Evill siedz cicho, sam powie
[19:43] Evill: sory :)
[19:43] <@codeguy>: :]
[19:44] phoenix__: jeszcze 1 min i continue
[19:44] <@codeguy>: ok
[19:46] phoenix__: dobra go
[19:46] phoenix__: wszyscy zrobili co mieli zrobic ?
[19:47] phoenix__: codeguy continue
[19:47] <@codeguy>: wybieramy typ projektu Windows Application
[19:48] <@codeguy>: ustalamy sciezke i ok :]
[19:48] <@codeguy>: teraz usuncie caly kod ktory byc moze sie pojawil w oknie tekstowym
[19:48] <@codeguy>: nie bedzie nam potrzebny :P
[19:49] <@codeguy>: pierwsza rzecza ktora nalezy zrobic to dolaczyc odpowiedni plik naglowkowy w naszym przypadku windows.h
[19:49] <@codeguy>: tym ktorzy nie wiedza przypominam ze robimy to za pomoca dyrektywy #include
[19:49] <@codeguy>: czyli najlepiej wpisac #include
[19:49] phoenix__: btw w czym kodzimy Cpp czy C ?
[19:50] <@codeguy>: w c
[19:50] <@codeguy>: rownie dobrze mozna powiedziec ze w c++
[19:51] <@codeguy>: te nawiasy < i > przy windows.h informuja kompilator ze ma szukac tego pliku w swoich domyslnych bibliotekach
[19:51] <@codeguy>: teraz trzeba napisac glowna funkcje programu
[19:52] <@codeguy>: jej nazwa to WinMain - funkcja zwraca wartosc typy int czyli liczbowa, a dodatkowo rzutujemy na WINAPI
[19:52] <@codeguy>: parametry funkcji to glowny uchwyt, instancja programy
[19:52] <@codeguy>: *programu
[19:53] <@codeguy>: zmienna ta jest typu HINSTANCE
[19:53] <@codeguy>: nastepna jest tego samego typu tylko ze nie jest nam zbytnio potrzebna
[19:54] <@codeguy>: jest ona pozostaloscia po 16 bitowym windowsie
[19:54] <@codeguy>: dalej mamy zmienna typu LPSTR czyli zwykly ciag znakow
[19:55] <@codeguy>: na koncu stan naszego okna - zmienna typu int
[19:55] <@codeguy>: w calosci wyglada to tak:
[19:55] <@codeguy>: int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
[19:55] <@codeguy>: otwieramy klamry i piszemy return 0 ;
[19:55] Evill: pytanko
[19:55] Mkzm: booshe
[19:55] Evill: :)
[19:55] <@codeguy>: taaak
[19:56] Mkzm: to jest zakrecone :]
[19:56] Evill: #include
[19:56] Evill: int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
[19:56] Evill: ;
[19:56] Evill: tak to ma ywgladac ?
[19:56] <@codeguy>: tak...nazwy zmiennych mozesz podac swoje
[19:56] Evill: thx :)
[19:56] Mkzm: to juz lepiej zrobic klasy okna :)
[19:57] <@codeguy>: mozna :]
[19:57] Mkzm: :D
[19:57] <@codeguy>: teraz skompilujcie projekt
[19:57] <@codeguy>: i uruchomcie yyy ten program
[19:57] Mkzm: MessageBox(Null,"jakos tak chyba");
[19:58] <@codeguy>: macie wszystko ?
[19:58] Evill: ja mam blad
[19:58] phoenix__: nie
[19:58] Mkzm: :]
[19:58] Mkzm: :)
[19:58] y00da: ;)
[19:59] phoenix__: jebniete tyo devcpp
[19:59] Evill: ok juz nie :)
[19:59] phoenix__: jak tam sie kompiluje ? :>
[19:59] phoenix__: kurde nie ma to jak lin
[19:59] Mkzm: a ja mam Visual C++ 6.0Enterprise :)
[19:59] phoenix__: #include
[19:59] phoenix__: int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil){
[19:59] phoenix__: return 0; }
[19:59] phoenix__: dobrze to ?
[19:59] <@codeguy>: tak dobrze :]
[20:00] Mkzm: ;]
[20:00] phoenix__: i daje compile
[20:00] <@codeguy>: tak
[20:00] naruto: i nic si enie dzieje ;]
[20:00] <@codeguy>: tak :]
[20:00] naruto: ok to mam
[20:00] naruto: :]
[20:00] Mkzm: to C czy C++ :|
[20:00] <@codeguy>: c i c++
[20:01] phoenix__: a mi sie pokazuje project not compile jhak daje run
[20:01] Prus: a zapisałe¶?
[20:01] Mkzm: mi sie skompilowalo bez problemu
[20:01] <@codeguy>: w momencie jak klikasz kompiluj dev prosi o zapisanie glownego pliku
[20:01] Reqamst: daj F9 to najpierw sie skompiluje a potem uruchomi
[20:01] <@codeguy>: tego txt do ktorego przed chwila pisalem
[20:02] y00da: i gitara mi dziala ;)
[20:02] phoenix__: daje ale nie dziala ;/
[20:02] <@codeguy>: to znaczy skompilowas taak
[20:02] mosquito: w devie jest taka opcja przy instalcji ze pyta czy userzy moga go uzywac oprocz admina moze podczas pospiesznej istnalcji sobie zaznaczyles ze nie ;]
[20:03] phoenix__: zawsze dawalem tak
[20:03] mosquito: wiec musisz kliknac prawym i uruchom jako admin i tam haselko podajesz
[20:03] mosquito: mhm
[20:03] mosquito: to masz popsuty komputer ;)
[20:03] Prus: :D
[20:03] phoenix__: w8 robie od nowa
[20:03] y00da: ;)
[20:03] phoenix__: daje file -> nrew -> project
[20:03] <@codeguy>: tak
[20:03] Mkzm: ee fajne do robakow bo nawet nic sie nie otworzylo :)
[20:04] phoenix__: windows appliacation jezyk C projec 1
[20:04] <@codeguy>: tak
[20:04] phoenix__: zawpisuje jako project 1
[20:04] <@codeguy>: mhm
[20:04] lav: lepiej chyba bylo by kompilowac z lini komend, chyba mniej tlumaczenia
[20:04] phoenix__: wywalam to co tam jest
[20:04] y00da: to w koncu ma byc c czy cpp ??
[20:04] mosquito: a nie file ??
[20:04] mosquito: moment
[20:04] mosquito: ale chyba wystarczy zrobic zeby zwykly dokument a nie caly projekt
[20:04] mosquito: z eszta nipamietam nie zdazylem wskoczyc na winde ;P
[20:04] mosquito: i teraz w ciemno tlumacze i pewnie zle ;p
[20:05] y00da: :)
[20:05] phoenix__: wklejam i daje compile
[20:05] phoenix__: pokazuje okienko zeby zapisac i daje nazqe pliku abc
[20:05] phoenix__: i zapisz
[20:05] <@codeguy>: tak
[20:05] phoenix__: i nic
[20:05] Mkzm: WINAPI WinMain(HINSTANCE hInstance,
[20:05] Mkzm: HINSTANCE hPrevInstance,
[20:05] Mkzm: LPSTR lpCmdLine,
[20:05] Mkzm: int nCmdShow)
[20:05] Mkzm: {
[20:05] Mkzm: MessageBox(NULL,"Wiadomosc tekstowa","Nazwa okna",MB_OK);
[20:05] Mkzm: return 0;
[20:05] Mkzm: }:]
[20:06] Mkzm: :)
[20:06] phoenix__: tyo dac?
[20:06] <@codeguy>: mozesz to wkleic
[20:06] Mkzm: lol
[20:06] y00da: git Mkzm ;)
[20:06] Mkzm: dodaj #include ofc
[20:06] phoenix__: wie
[20:06] Mkzm: lol
[20:06] y00da: dobra mozemy kontynuowac
[20:06] FD: Witam ;]
[20:07] phoenix__: ma byc int WINAPI czy bez inta?
[20:07] Mkzm: :]
[20:07] <@codeguy>: z int
[20:07] <@codeguy>: wywala ci jakies bledy ?
[20:07] r00uter: jhest wyklad?
[20:07] r00uter: czy juz ppo ?
[20:07] mosquito: po ;]
[20:07] r00uter: l0l
[20:07] r00uter: to ile mial 30 minut :D
[20:07] mosquito: znaczy w sumie nie wiem :P
[20:07] mosquito: ale juz -m to nie wiem :P
[20:07] FD: Witaj mosquito
[20:07] phoenix__: dobra leccie nie idzie mi ;/
[20:07] mosquito: aha narazie natura techniczna
[20:07] r00uter: o jest wyklad
[20:07] r00uter: :P
[20:07] mosquito: :P
[20:07] mosquito: czesc FD
[20:07] phoenix__: wyskauje mi na dole w zakladce compiler
[20:07] y00da: +m i dalej prosze
[20:08] Mkzm: :]
[20:08] phoenix__: Nie mozna odnalezc okreslonego plikui
[20:08] Mkzm: :]
[20:08] <@codeguy>: dobra
[20:08] <@codeguy>: teraz zajmiemy sie wyswietleniem prostego komunikatu
[20:09] <@codeguy>: jak juz zdazyl wczesniej napisac Mkzm
[20:09] <@codeguy>: funkcja nosi nazwe MessageBox
[20:09] <@codeguy>: i przyjmuje nastepujace parametry
[20:10] <@codeguy>: 1 - uchwyt okna ktore wywoluje ten komunikat, tzw okno rodzic
[20:10] <@codeguy>: 2 - jakas wiadomosc
[20:10] <@codeguy>: 3 - jakis tytul
[20:10] <@codeguy>: 4 - flagi okreslajace wyglad okna komunikatu
[20:11] <@codeguy>: flag jest sporo ja omowie tylko te podstawowe
[20:11] <@codeguy>: MB_OK - zwykly przysci ok
[20:11] <@codeguy>: MB_YESNO - przyciski tak nie
[20:12] <@codeguy>: MB_ABORTRETRYIGNORE - przerwij ponow ingoruj
[20:12] <@codeguy>: MB_OKCANCEL
[20:12] <@codeguy>: MB_YESNOCANCEL
[20:13] <@codeguy>: MB_RETRYCANCEL
[20:13] <@codeguy>: teraz jeszcze style ikon:
[20:13] <@codeguy>: MB_ICONWARNING
[20:13] <@codeguy>: MB_ICONINFORMATION
[20:13] <@codeguy>: i tak dalej i tak dalej
[20:13] <@codeguy>: wszystko wyglada na przyklad tak:
[20:14] <@codeguy>: MessageBox(0, "Wiadomosc", "Tytul", MB_OK | MB_ICONINFORMATION) ;
[20:14] <@codeguy>: wklejcie ta linie przed return 0 ;
[20:15] <@codeguy>: return 0 zwraca 0, czyli falsz i wtedy program dobiega konca
[20:15] <@codeguy>: skompilujcie i zobaczcie efekt...mozecie sie troche pobawic - pozmieniac parametry hyh
[20:16] <@codeguy>: teraz omowie kilka kolejnych funkcji
[20:16] <@codeguy>: mam nadzieje ze wszystko co do tej pory napisalem jest jasne
[20:16] <@codeguy>: zmienna ktora przechowuje uchwyt
[20:17] <@codeguy>: okna jest typu HWND (nie mylic z HWDP)
[20:17] <@codeguy>: czyli np. HWND Okno ;
[20:17] <@codeguy>: Teraz spróbujemy sobie pobrac uchwyt okna ktory zarzadza ikonami na pulpicie
[20:18] <@codeguy>: do szukania okien sluzy funkcji FindWindow ktora w przypadku powodzenia zwraca nam uchwyt do znalezionego okna
[20:19] <@codeguy>: przyjmuje ona nastepujace parametry
[20:19] <@codeguy>: nazwe klasy okna i nazwe ktora okno ma na swoim pasku
[20:20] <@codeguy>: program ktory zarzadza ikonami jest klasy ProgramMan czyli piszemy
[20:20] <@codeguy>: Okno = FindWindow("ProgMan", NULL) ;
[20:20] <@codeguy>: *ProgMan :P
[20:20] <@codeguy>: w zmiennej Okno mamy teraz uchwyt do ikonek
[20:21] <@codeguy>: i co z tego ?
[20:21] <@codeguy>: za pomoca uchwytu mozemy operowac na oknie
[20:21] <@codeguy>: modyfikowac je niszyc chowac itp
[20:21] <@codeguy>: funkcja ktora wyswietla okno nosi nazwe ShowWindow i przyjmuje nastepujace parametry
[20:22] <@codeguy>: uchwyt okna na ktorym dokono modyfikacji
[20:22] <@codeguy>: i flage czyli sposob w jaki bedzie mial wyswietlac to okno, podstawowe flagi to: SW_SHOW i SW_HIDE
[20:22] <@codeguy>: pierwsza mowi funkcji zeby pokazala okno druga zeby schowala
[20:23] <@codeguy>: i piszemy sobie: ShowWindow(Okno, SW_HIDE) ;
[20:23] <@codeguy>: skompilujcie, uruchomcie i popatrzcie na pulpit
[20:23] <@codeguy>: teraz pytania
[20:23] y00da: łał
[20:23] Visual: :]
[20:23] Visual: :)
[20:23] mosquito: a co mial zrobic ten program bo nie kompiluje go
[20:23] mosquito: tylko chce wiedziec co robi
[20:24] Prus: czyli tylko jedno okno jest w klasie ProgMan o pasku NULL?
[20:24] phoenix__: szkam kompilatora i na gcc sie zdecydyje
[20:24] mosquito: :P
[20:24] mosquito: wole G++ :P
[20:24] defc0n: :D
[20:24] mosquito: g++*
[20:24] Reqamst: ee? to ma wygladac w calosci?
[20:24] defc0n: koniec czy przerwa?
[20:24] mosquito: przerwa
[20:24] defc0n: to dobrze ;]
[20:24] mosquito: ej nie ma taego progs w pasku tego obok MENU ??
[20:24] GynAway: codeguy: looknij priv
[20:24] <@codeguy>: program mial ukrywac ikony pulpitu
[20:25] mosquito: aha
[20:25] mosquito: to musze go zrobic
[20:25] naruto: wklej ktos kod tego caly
[20:25] mosquito: ale potem :P
[20:25] <@codeguy>: hyh
[20:25] mosquito: juz sie czeggos nauczylem :P
[20:25] Prus: a jak moje putanie? :)
[20:25] <@codeguy>: Prus czekaj
[20:25] Prus: ok
[20:25] Evill: ;]
[20:26] phoenix__: wiecei skad pobrac mingw ? ;>
[20:26] y00da: hehe ;)
[20:26] defc0n: kurde prusy nawet
[20:26] defc0n: na kanale
[20:26] defc0n: to miedzynarodowa szajka
[20:26] defc0n: :D
[20:26] Prus: taa
[20:26] <@codeguy>: jeśli znasz nazwe klasy to wpiszujesz ja w pierwszym parametrze wtedy nie musisz wpisywac nazwy okna
[20:26] Evill: prusy :D:D
[20:26] <@codeguy>: a jesli znasz nazwe to nie musisz wpisywac klasy
[20:26] mosquito: dobra koniec przerwy dawaj +m
[20:26] mosquito: i walkuj dalej
[20:26] <@codeguy>: funkcja musi miec przynajmniej jedna dana na podstawie ktorej bedzie prowadzic poszukiwaniea
[20:27] Evill: ?
[20:27] Evill: ;]
[20:27] <@codeguy>: to jedziemy dalej hyh
[20:27] Evill: ;]
[20:28] Evill: prowadz wyklad , prosze :)
[20:29] <@codeguy>: juz juz
[20:30] <@codeguy>: nazwa klasy pasku zadan to: Shell_TrayWnd
[20:30] <@codeguy>: Teraz zrobimi sobie migajacy pulpit
[20:30] <@codeguy>: :D
[20:30] <@codeguy>: chcemy osiagnac taki efekt
[20:31] <@codeguy>: że
[20:31] <@codeguy>: znikaja ikonki - mija sekunda - ikonki sie pojawiaja - znika pasek zadan - pasek zadan sie pojawia - ikonki znikaja
[20:32] <@codeguy>: i tak na przemian
[20:32] <@codeguy>: znacie petle for
[20:32] Evill: tak
[20:32] Evill: ;]
[20:32] Prus: tak
[20:32] y00da: taaaak ;)
[20:32] Evill: nieiwem jak mosquito
[20:32] Reqamst: tak ;]
[20:32] Szejker: nieee
[20:32] Szejker: zartowalem ;>
[20:32] Mkzm: for you master :)
[20:32] mosquito: ja znam
[20:32] <@codeguy>: ok
[20:32] Evill: ... ;]
[20:32] mosquito: pewnie znalem wczesniej niz ty evill ;]
[20:32] <@codeguy>: to zrobcie sobie petle for
[20:32] Evill: oeweni i tak ...
[20:33] defc0n: znamy i inne tez :D
[20:33] <@codeguy>: for(int i = 0 ; i < 20 ; i++)
[20:33] <@codeguy>: ok
[20:33] y00da: +m
[20:33] <@codeguy>: if(i % 2)
[20:33] <@codeguy>: {
[20:33] <@codeguy>: ShowWindow(hIkony, SW_SHOW) ;
[20:34] <@codeguy>: for(int i = 0 ; i < 20 ; i++)
[20:34] <@codeguy>: {
[20:34] <@codeguy>: if(i % 2)
[20:34] <@codeguy>: {
[20:34] <@codeguy>: ShowWindow(hIkony, SW_SHOW) ;
[20:34] <@codeguy>: ShowWindow(hPasekZadan, SW_HIDE) ;
[20:34] <@codeguy>: }
[20:34] <@codeguy>: else
[20:34] <@codeguy>: {
[20:34] <@codeguy>: ShowWindow(hPasekZadan, SW_SHOW) ;
[20:34] <@codeguy>: ShowWindow(hIkony, SW_HIDE) ;
[20:34] <@codeguy>: }
[20:34] <@codeguy>: Sleep(1000) ;
[20:34] <@codeguy>: }
[20:34] Evill: thx
[20:35] <@codeguy>: aha oczywiscie wczesniej tworzymy zmienne
[20:35] <@codeguy>: HWND hIkony, hPasekZadan ;
[20:35] <@codeguy>: i funkcja FindWindow przekazujemy do nich uchwyty
[20:36] <@codeguy>: ProgMan - klasa ikonej Shell_TrayWnd - klasa paska zadan
[20:36] Evill: zapodaj caly :d :)
[20:36] Evill: jak mozesz
[20:38] <@codeguy>: macie pytania?
[20:39] mosquito: nie
[20:39] mosquito: dalej :P
[20:39] daj_caly_kodzik: piwo
[20:39] Evill: thx za kod
[20:39] mosquito: i tak 90% pojedzie z nauka z logow :P
[20:39] Evill: caly ;]
[20:40] <@codeguy>: dodam jeszcze ze zeby zatrzymac program na okreslona ilosc milisekund nalezy uzyc funkcji Sleep
[20:40] <@codeguy>: która jako parametr przyjmuje wlasnie milisekundy
[20:40] <@codeguy>: #include
[20:40] <@codeguy>: int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
[20:40] <@codeguy>: {
[20:40] <@codeguy>: HWND hIkony, hPasekZadan ;
[20:40] <@codeguy>: hIkony = FindWindow("ProgMan", NULL) ;
[20:40] <@codeguy>: hPasekZadan = FindWindow("Shell_TrayWnd", NULL) ;
[20:40] <@codeguy>: for(int i = 1 ; i < 20 ; i++)
[20:40] <@codeguy>: {
[20:40] <@codeguy>: if(i % 2)
[20:40] <@codeguy>: {
[20:40] <@codeguy>: ShowWindow(hIkony, SW_SHOW) ;
[20:40] <@codeguy>: ShowWindow(hPasekZadan, SW_HIDE) ;
[20:40] <@codeguy>: }
[20:40] <@codeguy>: else
[20:40] <@codeguy>: {
[20:40] <@codeguy>: ShowWindow(hPasekZadan, SW_SHOW) ;
[20:40] <@codeguy>: ShowWindow(hIkony, SW_HIDE) ;
[20:40] <@codeguy>: }
[20:40] <@codeguy>: Sleep(1000) ;
[20:40] <@codeguy>: }
[20:40] <@codeguy>: return 0 ;
[20:40] <@codeguy>: }
[20:40] <@codeguy>: caly kod programu
[20:40] <@codeguy>: bez MessageBox'a ofc
[20:41] <@codeguy>: kazda aplikacja ktora posiada swoje okno (nasza nie posiada :P)
[20:41] <@codeguy>: i inne okna potomne
[20:41] <@codeguy>: komunikuje sie z nimi poprzez tak zwane komunikaty
[20:41] <@codeguy>: czy zdarzenia jak kto woli
[20:42] <@codeguy>: teraz sprobujemy napisac kod ktory bedzie usuwal ikony cyklicznie
[20:43] <@codeguy>: wywalcie caly kod tak zeby nic nie zostalo w {} fnkcji WInMain
[20:43] <@codeguy>: teraz musimy pobrac uchwyt kontrolki List View czyli listy z ikonami
[20:44] <@codeguy>: wyjasniam:
[20:44] <@codeguy>: ProgMan to okno ktore zwiera liste ikon, my musimy pobrac uchwyt do listy ikon bezposrednio zeby na niej operowac
[20:44] <@codeguy>: storzmy wiec sobie uchwyt na ikonki HWND hIkonki ;
[20:45] <@codeguy>: teraz pobieramy uchwyt do ProgMan czyli FindWindow("ProgMan", NULL) ;
[20:45] <@codeguy>: i teraz stop na chwile
[20:45] <@codeguy>: Okno ProgMan zawiera okna potomne
[20:45] <@codeguy>: m.in posiada liste ikon
[20:46] <@codeguy>: jednak lista ikon jest drugim oknem PRogManagera
[20:46] <@codeguy>: funkcja GetWindow pozwoli nam na
[20:47] <@codeguy>: wybieranie uchwytow do kolejnych okien potomnych
[20:47] <@codeguy>: GetWindow przyjmuje jako parametry uchwyt do okna na ktorym ma operowac
[20:48] <@codeguy>: i falge w naszym przypadku bedzie to GW_CHILD - cczyli zwroc okno potomne
[20:48] <@codeguy>: piszemy:
[20:48] <@codeguy>: hIkony = GetWindow(hIkony, GW_CHILD) ;
[20:48] <@codeguy>: hIkony = GetWindow(hIkony, GW_CHILD) ;
[20:48] <@codeguy>: dwa razy piszemy :]
[20:50] <@codeguy>: dlatego ze
[20:50] <@codeguy>: ProgMan ma okno potomne, ktore zawiera nasza liste
[20:50] <@codeguy>: ikon
[20:50] <@codeguy>: musimy pobrac okno potomne do hIkony
[20:51] <@codeguy>: i z tego okna potomnego pobrac okno potomne czyli nasza Liste ikon
[20:51] <@codeguy>: (nie moja wina bill tak wymyslil)
[20:51] <@codeguy>: dobra
[20:51] <@codeguy>: teraz utworzcie sobie gdzies tam zmiena typu int ktora bedzie przechowywala liczbe ikon ktore mamy na pulpicie
[20:52] <@codeguy>: np. int nLiczba ;
[20:52] <@codeguy>: teraz musimy wyslac komunikat do listy ikon (hIkony) zeby zwrocila nam ilosc ikon
[20:52] phoenix__: yeah
[20:52] phoenix__: zrobilem
[20:52] <@codeguy>: za wysylanie komunikatow odpowiada funkcja SendMessage
[20:53] <@codeguy>: pierwszy parametr to uchwyt do okna
[20:53] <@codeguy>: drugi to rodzaj komunikatu do przeslania
[20:53] <@codeguy>: trzeci to 32 bitowa dana
[20:53] <@codeguy>: czwarty tez 32 bitowa dana
[20:53] <@codeguy>: 3 parametr nalezy rzutowac na (WPARAM)
[20:54] <@codeguy>: a 4 na (LPARAM)
[20:54] <@codeguy>: piszemy wiec taki kod
[20:54] <@codeguy>: nLiczba = SendMessage(hIkony, LVM_GETITEMCOUNT, 0, 0) ;
[20:54] <@codeguy>: w tym wypadku nie rzutujemy 3 , 4 bo wynosza 0
[20:54] <@codeguy>: mamy juz liczbe ikonek
[20:55] <@codeguy>: teraz musimy zorganizowac peltle ktora bedzie je cyklicznie usuwala
[20:55] <@codeguy>: aby usunac dana ikone wysylamy komunikat LVM_DELETEITEM
[20:56] <@codeguy>: a w parametrze 3 wpisujemy numer ikonki do usuniecia
[20:56] phoenix__: codeguy pasek mi znikl i nie chce sie pojawic ;PP
[20:56] <@codeguy>: sprobujcie sami to napisac
[20:56] <@codeguy>: ja tez to napisze hyh
[20:56] <@codeguy>: z/w
[20:56] phoenix__: eee co mam robic ? :>
[20:57] phoenix__: Gynvaelchyba bedziesz musial pozniej troche zobic
[20:57] phoenix__: kurde
[20:58] phoenix__: start mi znikl i sie nie chce pojawic
[20:59] <@codeguy>: mozemy sie rowniez posluzyc funkcja
[20:59] phoenix__: codeguy slyszysz
[20:59] phoenix__: pasek mi znikl kurde
[21:00] Gynvael: (wyklad z asma bedzie za 15 minut, wlasnie sie na stancji rozpakowuje i poprosilem codeguy'a zeby troche dluzej poprowadzil)
[21:00] <@codeguy>: zapomnialem powiedziec zebyscie dodali plik
[21:00] <@codeguy>: tam znajduja sie definicje komunikatow
[21:00] <@codeguy>: tak mogly by byc bledy
[21:01] <@codeguy>: aha nie bujcie sie o ikony - ja odswiezylem i mam je z powrotem :]
[21:01] <@codeguy>: jakies pytania?
[21:02] <@codeguy>: hyh ciekawe czy ktos zostal..hyh
[21:02] fubu: tak
[21:02] d0ubl3_j: ja jestem teraz ;p
[21:02] fubu: 0 pytan :)
[21:02] Reqamst: tia ;p
[21:02] Mkzm: :]
[21:02] <@codeguy>: hyh
[21:02] Prus: SendMessage(hIkony,0,LVM_DELETEITEM);
[21:02] Prus: dobre to?
[21:02] Prus: ikona zniknie?
[21:03] <@codeguy>: SendMessage(hIkony, LVM_DELETEITEM, numer_ikony, 0) ;
[21:03] <@codeguy>: wklejam kod:
[21:03] Prus: aha
[21:03] <@codeguy>: HWND hIkony ;
[21:03] <@codeguy>: hIkony = FindWindow("ProgMan", NULL) ;
[21:03] <@codeguy>: hIkony = GetWindow(hIkony, GW_CHILD) ;
[21:03] <@codeguy>: hIkony = GetWindow(hIkony, GW_CHILD) ;
[21:03] <@codeguy>: int nLiczba = SendMessage(hIkony, LVM_GETITEMCOUNT, 0, 0) ;
[21:03] <@codeguy>: for(int i = 0 ; i < nLiczba ; i++)
[21:03] <@codeguy>: {
[21:03] <@codeguy>: SendMessage(hIkony, LVM_DELETEITEM, (WPARAM) i, 0) ;
[21:03] <@codeguy>: Sleep(1000) ;
[21:03] <@codeguy>: }
[21:03] <@codeguy>: return 0 ;
[21:03] G0blin: zaczelo sie?
[21:04] <@codeguy>: wyklad z asma bezie za 15 minut
[21:04] <@codeguy>: za 10 minut :]
[21:04] G0blin: ok, thx
[21:04] <@codeguy>: to jak rozumiecie wszystko?
[21:04] Prus: ja tak
[21:05] Mkzm: to chyba jest C++
[21:06] Mkzm: bo w C nie mozna w srodku kodu walic int nLiczba;
[21:06] <@codeguy>: jak to nie mozna? mozna
[21:06] Mkzm: no m iwali blad ja kda mw srodku ;]
[21:06] mosquito: to co to za kompilator?
[21:07] mosquito: chyba ze takie jest C ;]
[21:07] mosquito: ale wydaje mi sie to dziwne
[21:07] mosquito: ;]
[21:07] <@codeguy>: hmmm ciekawe
[21:07] mosquito: chciaz na C nie znam sie ;P
[21:07] Mkzm: Visual C++ 6.0 Enterprice edition
[21:07] mosquito: uu
[21:07] mosquito: nieee ;/
[21:07] lav: no tak w c niemozna for(int i......
[21:07] mosquito: ja to mailem nawet ifstream nie moglem zrobic bo taka to lipa :P
[21:07] phoenix__: ide na lina i na asma czekam
[21:07] mosquito: w visualu :P
[21:08] <@codeguy>: dobra
[21:08] <@codeguy>: mam pytanie
[21:08] <@codeguy>: czy wyklad byl bardzo do chrzany
[21:08] <@codeguy>: *chranu
[21:08] mosquito: nie
[21:08] <@codeguy>: *chraznu
[21:08] mosquito: byl dobry
[21:08] <@codeguy>: kurde
[21:08] <@codeguy>: *chrzanu
[21:08] mosquito: podobal mi sie
[21:08] mosquito: kiedy druga czesc ? :D
[21:08] Prus: był spoko!
[21:08] <@codeguy>: prawdopobodnie za tydzien
[21:08] <@codeguy>: :]
[21:08] Prus: trochę wolny chwilami... ;-)
[21:08] <@codeguy>: :]
[21:09] lav: dobry dobry
[21:09] Prus: ale te problemy techniczne
[21:09] mosquito: no i to tlumaczenie jak skomplilowac :P
[21:09] <@codeguy>: ok za tydzie przyspieszymy tempo :]
[21:09] lav: dlamnie wolny to +
[21:09] mosquito: albo jakies takie sprawy zwiazane z kompilaotrem :P
[21:09] mosquito: to tylko opoznialo
[21:09] Karql: koniec?
[21:09] mosquito: si
[21:09] <@codeguy>: jescze chwilka
[21:10] Karql: to powiedz na pirva bo chce sie isc kapac:D
[21:10] Karql: a nie chce mi sie duzo logow obcinac:D
[21:10] <@codeguy>: najblizszy wyklad nosil tytul: pulpit -> schowek -> pulpit
[21:10] <@codeguy>: cya