[ milan82 @ 25.03.2006. 09:09 ] @
Radim kviz aplikaciju i trebam ucitati pitanje (liniju iz datoteke) koja bi se prikazala na DialogBox-u.
Na tom istom Box-u se nalazi polje za unos odgovora, te se unos provjerava sa linijom iz druge datoteke (tocan odgovor).
Trebao bi mi kod u c-u ili (bolje ) c++. Moze i neki link na aplikaciju koja radi slicno.

[ stargazer @ 25.03.2006. 10:40 ] @
nisam baš najbolje razumeo šta ti uopšte treba, ali ako hoćeš da čitaš fajl sa pitanjima i odgovorima imaš funkciju ReadFile koja se koristi u kombinaciji sa CreateFile

a što se tiče toj dialoga u kome radiš prikaz stringa, tu ne vidim šta je problem, jedino možda u tome da parsuješ pitanje iz pročitanog bafera, ali to opet zavisi od toga kako si zapisao fajl
[ milan82 @ 25.03.2006. 13:09 ] @
Stvar funkcionira ovako:
imam dvije datoteke: pitanja i odgovori (tocan odgovor na pitanje se nalazi na istom broju linije), generiram slucajan broj (slucajno pitanje, iz datoteke sa pitanjima izvucem jednu liniju) i taj tekst trebam ispisati na dialogu. Pitanje spremam u polje:
char pitanje[100];
U MessageBox ga lako ispisujem al ne znam kako prikazati to pitanje (liniju teksta) na DialogBox.

Code:

void ObradaPitanja (HWND handle)
{
srand((unsigned)time(0)); 
int random_integer; 
int lowest=1, highest=1000; 
int range=(highest-lowest)+1; 
random_integer = rand();//= lowest+int(range*rand()/(RAND_MAX + 1.0)); 

int i,k=1;
broj_linije=3; //radi testa
i=3;//random_integer;
    FILE *dat;
    
    dat=fopen("pitanja","r");
    while(k<i)
        if (fgetc(dat)=='\n') ++k;
    for (i=0;;++i)
    {
        pitanje[i]=fgetc(dat);
        if (pitanje[i]==EOF || pitanje[i]=='\n')
        {
            pitanje[i]='\0';
            break;
        }
    }
    
    fclose(dat);
    SetDlgItemText(handle, IDC_STATIC2, pitanje);
    

}


tu funkciju pozivam u proceduri za obradu dialog prozora

Code:


BOOL CALLBACK DialogProcHelp(HWND hwndDlg, 
                             UINT message, 
                             WPARAM wParam, 
                             LPARAM lParam) 

...nebitan kod...

ObradaPitanja(hwndDlg);

[ sucur @ 25.03.2006. 14:07 ] @
Postavi readonly edit control i u njega stavljaj taj bafer.
[ stargazer @ 25.03.2006. 14:43 ] @
Neću da ulazim u onaj kod u kome čitaš pitanje iz fajla, ali znaš kako, onaj poziv :
SetDlgItemText(.......);
je način na koji ti postavljaš tekst te STATIC kontrole, tako da ti je sa tog aspekta samo to bitno u funkciji ObradaPitanja.
Ako ti to ne radi, onda reci šta se tačno dešava kada pozoveš funkciju gore.

Takođe bi trebalo da staviš onaj kod koji si zamenio sa "...nebitan kod..." ili bar kako si obradio poruke WM_INITDIALOG, WM_COMMAND i WM_CTLCOLORSTATIC; ako je taj kod velik, onda ga pošalji na mejl.

[Ovu poruku je menjao stargazer dana 25.03.2006. u 15:47 GMT+1]
[ milan82 @ 25.03.2006. 15:29 ] @
@sucur: Kada uradim sto si rekao, dobijem stack overflow.
@stargazer: Ne dogada se nista, umjesto teksta pitanja dobijem samo: Static
cijeli kod je u attach-u.
[ stargazer @ 25.03.2006. 16:34 ] @
Ja ne znam šta da ti kažem...
Evo, malo pre sam ubacio taj poziv SetDlgItemText u neku svoju funkciju na dialogu i uradi ono što joj kažem.

Ono što mi pada na pamet je da pogledaš Properties tog STATICa i da proveriš povratnu vrednost funkcije SetDlgItemText.
Jesi li proverio da li on uopšte dobro učita pitanje?
Verovatno je neka nebuloza, predlažem ti da dobro pogledaš ceo kod i resurse.
[ milan82 @ 25.03.2006. 17:08 ] @
Bila je u pitanju obicna nebuloza, ne znam ni ja kako al sam postavio krivi ID za Static Text pa nisam ni mogao dobiti pravi ispis.
stargazer hvala!