[ Rato iks de @ 04.03.2011. 10:31 ] @
Zelim da napravim program za ucitavanje i ispisivanje niza u win32. Medjutim, imam problem sa ispisom toga niza i nisam siguran da li dobro predajem
vrjednost nizu kada se unosi i kada se ispisuje.Zelim kad unesem velicinu ili neki clan niza da ga ispisem odmah na glavnom izlazu a ne u MessageBox.
Code:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent, vel;
    int niz[100];
    PAINTSTRUCT ps;
    HDC hdc;
        
        switch (message)
    {
        case WM_KEYDOWN:
       {
        switch (wParam) 
        {
            case '9':    //ovde sam se ogranicimo na duzinu 9 kao najvecu
                        {
                        vel = 9;
                        TextOut (hdc, 10, 20, TEXT("9"), 1);
                                         // ::MessageBox(hWnd, _T("Duzina niz je 9.") , _T("Duzina"), MB_OK); ja ne zelim da mi se ispise u MessageBox
                                        break;
                 }


E sad kada unosim elemente niza to odradim ovako:
Code:
for (int i=0; i<vel; i++)
         {
             switch(message)
             {
             case WM_KEYDOWN:
                {
                    switch (wParam)
                    {
                         case '9':
                                niz[i] = 9;
                                break;


Da li je ovaj unos u niz dobar i kako da ispisem na kraju citav niz?

Radim ovo u c++ 2008.

HVALA
[ Mihajlo Cvetanović @ 04.03.2011. 10:46 ] @
Zašto koristiš WM_KEYDOWN? Zapravo zašto koristiš WndProc? Zbog čega ne praviš konzolnu aplikaciju?
[ Rato iks de @ 04.03.2011. 11:12 ] @
Koristim zato sto ne poznajem neku drugu naredbu.Knjiga po kojoj radim nema obradjen ciklus za tastaturu, samo se pominje funkcija GetAsyncKeyState() koja obradjuje stanje bilo kojeg tastera u svakom trenutku.E sad sam ja razmisljao da nju upotrjebim ali nisam bio siguran da li ce dodjeliti pravu vrjednost pa sam izabrao drugi put.

Zelim da uradim ovaj projekat u win32.
[ Mihajlo Cvetanović @ 04.03.2011. 13:09 ] @
Početnici obično prve programe rade u konzolnim aplikacijama (to su one što počinju u funkciji main). Za bilo kakvo učitavanje bilo čega podrazumeva se da korisnik pritisne Enter s vremena na vreme. Da li si do sad napravio neku konzolnu aplikaciju? Da li specijalno ne želiš sada da praviš konzolnu aplikaciju? U Visual Studiu 2008 projekat kozolne aplikacije se pravi kad u "New Project" prozoru odabereš "Win32 Console Application".
[ Rato iks de @ 04.03.2011. 14:11 ] @
Mihajlo, nisam pocetnik.Napravio sam u conzoli ni sam ne znam koliko programa.Prevjezbavao, obradio Laslovu knjigu i C++ za 21.dan od Jesse Liberty-ija i sada je dosao red da malo pocnem da radim neke programe i u Win32.

Nadam se da me sad razumijes sto govorim i u cemu je moj problem pri relizaciji ovoga programa sto hocu da napravim.

Ako hoces uputi me u cemu je problem ako ne onda brisi temu.

Ranije sam rekao da ovu knjigu koju koristim za Win32 (od Majkl Morison - a) nema bas obradjen ciklus tastature.
Necu da se bavim programiranjem igara ali morao sam od necega da pocnem uciti kako se to radi za windows.
[ Mihajlo Cvetanović @ 04.03.2011. 14:47 ] @
Kakvo brisanje, nije u tome stvar, nego što mi nije jasno pitanje. Hoću da kažem da "učitavanje niza" i WM_KEYDOWN meni ne idu u istom postu. Kakav tačno niz želiš da učitaš? Pošto znači nije u pitanju konzolna aplikacija nego baš prozor sledeće pitanje je da li možeš da koristiš standardne kontrole (Edit box, recimo) za učitavanje podataka? Tu ti ne treba da vodiš računa o tome šta korisnik radi, nego kad korisnik klikne na neko dugme samo pokupiš sadržaj iz kontrole.
[ Rato iks de @ 04.03.2011. 17:39 ] @
Zelim da niz izgleda kao na slici.

Citat:
da li možeš da koristiš standardne kontrole (Edit box, recimo) za učitavanje podataka?

Da.

[ Mihajlo Cvetanović @ 05.03.2011. 10:55 ] @
To se obično ne radi tako u windows okruženju. Da li si video neku ne-konzolnu aplikaciju koja simulira konzolnu funkcionalnost? Uvedi jedan edit box od jednog reda, i jedno dugme. Korisnik treba da unese brojeve u edit boxu, odvojene razmakom, a klikom na dugme aplikacija treba taj jedan string da tokenizuje u niz brojeva. Drugim rečima u hendleru za BN_CLICKED radiš GetWindowText i tako dobijaš svoje podatke. Ne treba ti podatak za dužinu niza, jer kad korisnik klikne na dugme već ti je dao ceo niz.