» »

EditBox

EditBox

[MYTiX] ::

Zacel sm se neki malga ukvarjat z WinAPI v VC++ .NET.

Zdej me pa zanima kako lahko pisem v editBox.
Primer:
Imam 2 edit boxa. V prvega vpisem neko stevilo, na kar ob kliku na gumb , se to stevilo pomnozi z 2,7 in deli z 1000, od tu pa ne vem kako nej rezultat posljem drugmu TextBoxu, ki ga nato prikaze.

Sm neki iskal po MSDNju sam ne najdem nc pametnega.

snow ::

Vsakemu editboxu najprej določi spremenljivko.
To narediš s class wizardom(ctrl+w), pa greš pod member variables, ter vsakemu določiš spremenljivko številskega tipa(int,long,float,double...)
recimo m_dBox1 in m_dBox2.

narediš en gumb... klikneš 2x nanj da ti doda even onclickbutton... ter napišeš(dopišeš pod TODO):

//prepriše vrednosti iz editboxa v spremenljivko
UpdateData(TRUE);
m_dBox2=m_dBox1*1000/2.7;
//updejta izpis v editboxih.
UpdateData(FALSE);

To naj bi bilo na grobo...
sicer pa si na netu poišči ter downloadaj visual c++ in 21 days... mislim da je www.samspublishing.com
al nekaj takega :)

lp
Random mutation plus nonrandom cumulative natural selection - Richard Dawkins

NoUse4AName ::

Snow ti govoris o MFC, on dela v Win32 API. To sta razlicni stvari (MFC je wrapper okoli Win32 APIja).
Uporabi funkciji GetWindowText in SetWindowText (delujeta preko HWNDja od text fielda)

NoUse4AName ::

Drugace pa ti priporocam, da zazenes emule in si downloadas to knjigo:
programming windows 5th edition by charles petzold

Monster ::

jst ti pa svetujem obiske sledečih strani...

www.gametutorials.com
winprog.org
http://www.foosyerdoos.fsnet.co.uk/

pa uporabo MSDNja :)
Ka zaboga...

[MYTiX] ::

Hvala za linke in to. Me zanima kaj točneje je MFC (Microsoft Foundation Class). Pravijo da je nekje ful zaj******. Obstaja kaka alternativa MFCju?

Monster ::

eh stari ej... jst osebno bi pusto MFC ... mi je cudn drgac pa ni tk zajeban pač full objektivn je pa to... poglej si se qt lib (www.trolltech.com), al pa kaki gtk+, sdl lib ipd
Ka zaboga...

d-mon ::

Oh no :))
Se pravi si delal z Win32 api in si prisel do te faze, da si UI ze naprogramiral.
Ce si risal dialog in malo klikal po njem pa vse to, potem si verjetno delal v MFC.

Ampak naj ti bo...obe verziji:
Win32 api.
Vsak window (to je lahko od gumba in tree controle do dialoga) ima svojo spremenljivko, ki je tipa HWND. Ko kreiras dialog si te HWNDje zapomni.

Recimo da imas
HWND edit1, edit2;
edit1 = CreateWindow(.....) //poglej v MSDN...ta ti vrne
HWND.
isto za edit2. Povedati mu moras pa na katerem parentu se naj ti editboxa skreirata. Se pravi moras prej narediti dialog in si zapomniti njegov HWND.
Potem pa reces:
SetWindowText(edit1, "tralala");
LPTSTR temp;
const int maxval = 255;
in pa GetWindowText(edit1, temp, maxval);


MFC:
Narisi dialog, dodaj 2 editboxa na dialog. Naredi class za dialog (Ce ga se nisi). Klikni na editbox z desno tipko in izberi add variable. To naredi se za drugega.
Recimo, da si dal ime variablam edit1 in edit2.

Uporaba:
UpdateData(); //to ti prepise podatke iz dialoga v spremenljivke.
Naredi izracun...
UpdateData(FALSE); //iz spremenljivk v dialog.

Ce te to moti, lahko uporabljas:
GetDlgItem(IDC_EDIT1)->SetWindowText("tralala");
in pa:
CString temp;
GetDlgItem(IDC_EDIT2)->GetWindowText(temp);
ali pa:
LPTSTR temp;
GetDlgItem(IDC_EDIT2)->GetWindowText(temp, GetWindowTextLength( ));

Aja pa za LPTSTR nisem cist zihr...isto lahko uporabljas char temp[255]. Vem, da je LPTSTR pointer na string...

In MFC je simpl k pasulj in se posebno se ti ga splaca uporabljat zaradi CString classa, ki ti vse te probleme z LPTSTR in ostalo resi.
[D-mon]

[MYTiX] ::

V MFCju mislim da nism delal, ker sm izbral kot projekt Win32. Ker pa sm vidu da se da lepše stavr resšit z MFCjem bom zdaj poskusil z MFCjem. Hvala.

[MYTiX] ::

Ko delam racun in debugam, mi tezi:

error C2582: 'operator =' function is unavailable in 'CEdit'

Kako naj to resim?

NoUse4AName ::

Poskusal si uporabiti operator '=' nad objektom. To ne gre, ker CEdit nima preoblozenega tega operatorja.
Preden gres delat z windows c++ programi, se raje dobro c++ nauci. Prehitro si sel iz konzolnih aplikacij v windows.

NoUse4AName ::

Pa ne hodi vsako malo stvar druge ljudi sprasevat. Tako se ne bos nic naucil.

[MYTiX] ::

Sm stekal foro. Sam. Imas prou. bi mogu sam posikat resitve. Kaj ces Lenoba. :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[.NET] vohunjenje za API klici

Oddelek: Programiranje
212571 (1052) t909
»

en blemček v C (win 32api)..

Oddelek: Programiranje
131216 (986) Monster
»

Win32 API in C++

Oddelek: Programiranje
131494 (1365) Monster
»

Odpiranje dat.exe v VB

Oddelek: Programiranje
122810 (2603) webblod
»

Win32 API(VC++)

Oddelek: Programiranje
7787 (689) hatch

Več podobnih tem