Ok.
Ja sam i sam bio u dilemi dali ovako zapoceti, i dobro je da si me odmah upozorio na nepotrebne detalje (barem za tebe

).
Evo jedan mali primjer: Zelis napraviti MFC program uz pomoc Wizarda, a koji na ekranu ispise koordinate na mjestu gdje kilknes sa misem!
Pod pretpostavkom da si generirao projekat koji podrzava Document/View, dodaj ovo:
U Document klasi cuvamo podatke. U nasem slucaju je to koordinate gdje je mis kliknuo. Za taj zadatak cuvanja koordinata je najprikladnije koristiti objekat CPoint klase (iz ocitih razloga). Zato u Documentu (headeru, naravno) dodamo jednu member variablu tipa CPoint ovako:
private:
CPoint pMousePosition;
posto je variabla private (moze biti i public, ali je to los programerski stil), dodajemo i ovo:
public:
void SetMousePosition(CPoint point);
CPoint GetMousePosition();
Nakon toga u Document-ovom .cpp implementiramo gore navedene funkcije ovako:
void ImeDokumenta::SetMousePosition(CPoint point)
{
pMousePosition = point;
}
CPoint ImeDokumenta::GetMousePosition()
{
return pMousePosition;
}
Ovo ImeDokumenta je naravno ime dokument klase u tvojoj aplikaciji.
Sljedece sto trebamo uraditi je napisemo handler funkciju za ON_WM_LBUTTONDOWN poruku. To mozes uraditi uz pomoc wizarda (sto si vec otkrio kako). Handler naravno treba biti u View klasi. Sada samo nedostaje code u handleru (pojednostavljeno. Sto funkcija da uradi nakon sto bude pozvana od strane frameworka kao odgovor na klik misem). A code je ovaj:
.... U View klasi se nalazimo, u gore navedenom handleru
GetDocument()->SetMousePosition(point);
Invalidate();
GetDocument() vraca pointer na dokument. Kad njega imamo, pozovimo nasu funkciju SetMousePosition(point). point je argument koji framework posalje handleru (funkciji) kad je pozove kao odgovor na klik misem, a sam point sadrzi poziciju misa u trenutku kad se klik dogodio.
Invalidate() forsira view da se ponovo iscrta, sto znaci da OnDraw() funkcija u View klasi biva pozvana automatski. Zato sada idemo tamo i dodajemo sljedeci code:
CPoint point = pDoc->GetMousePosition();
CString sTextToWrite;
sTextToWrite.Format("Mouse Position is : ( %d , %d )", point.x, point.y);
pDC->TextOut(point.x,point.y, sTextToWrite);
Prva linija:
pDoc je pointer na Dokument koji je wizard automatski generirao u OnDraw handleru. Njega koristimo da procitamo poziciju misa koju smo zapamtili u Documentu
Druga linija:
Treba nam string da formiramo text koji ce se ispisati
Treca linija:
Formatiramo teks koji ce se ispisati
Cetvrta Linija:
Ispisujemo tekst u poziciji gdje je mis kliknuo
I to je sve. Ovo je jednostavan program, ali opisuje dosta od Document View Arhitekture.
Nadam se da je ovo neka pomoc. Ipak dopusti mi reci jos i ovo. Ja mislim da je losa ideja poceti sa wizardom. Na nasem faxu je wizard ZABRANJENO koristiti u projektima u prva dva semestra. Sve se mora raditi "rucno" Ja mislim da je to potpuno ispravno. Zato je onaj prvi primjer onakav kakav jeste. Najjednostavniji, ali u sebi sadrzi 50 % principa kojima treba dobro vladati.
na serveru
ftp://www.theleniax.com u folderu MFC mozes naci cijeli projekat po imenom test_mfc. Server nije aktivan 24 sata, nego otprilike tijelkom dana, pa se nemoj iznenaditi ako iza ponoci ne mozes naci server, ali tijekom dana je gotovo sigurno da ces uspjeti
Lijepi pozdravi