Šta je novo?

pomoc oko dijaloga u C++u

Zlajonja

Slavan
Učlanjen(a)
11.01.2006
Poruke
10
Poena
304
zdravo, treba mi mala pomoc oko GUI u C++u

radim nesto, tacnije prepravljam i dodajem nove stvari unutar vec postojeceg dijaloga u programu, u Microsoft Visual C++u
kako ima trista cuda na tom dijalogu, treba da prebacim neke opcije i dodam nove, tako da bude sistem tabova (valjda me razumete, tabovi kao u firefoxu, operi..)

e sad, ja sam uspela samo jedno da uradim, a to je da u Dialog Editoru izaberem Tab Control i insertujem to. medjutim, ne vidim sta mogu dalje sa tim da uradim, tj kako da ja sad pristupim ostalim tabovima. kad idem desnim klikom, kao kad obicno hocu da dodam recimo klasu, promenljivu ili event handler - to mi isto nudi ovde ali nista ne dobijem time, probala sam, ili barem za sad ne vidim da li nesto dobijem
ima li neko ideju, ko se bavio tim grafickim stvarima, kako da prosto pristupim tabovima 2 i 3 i da na njima radim to sta zelim?
mislim, izgleda da to ne moze da se uradi tako preko editora, nego mora 'rucno', u smislu da ja sve pisem, i to nije problem, samo mi nesto ne ide od ruke. nasla sam neku pomoc ovde, http://www.codersource.net/mfc_ctabctrl.html, ali to i ne uspeva.

evo slicice kako to izgleda
tabctrl.jpg


prvi put se susrecem sa tabovima i zato sam tako stala odjednom
hvala unapred, svaku ideju cu veoma ceniti.
 
Poslednja izmena:
hvala sto si se javio, taman sam htela doci da napisem, da sam videla CodeGuru (nekako mi je promaklo to dok sam trazila po netu) i da sam shvatila kako i sta treba, pa upravo radim na tome.

u sustini, pravilo mi je problema to, sto kad sam napravila to nesto, prijavljivao kako ne moze da nadje CTabCtrl..sto mi je cudno, s obzirom da je to vec ugradjena klasa, zar ne? mozda mi se opet pojavi problem oko toga, ali za sad cu da radim, dok sam puna elana, mogu posle javiti kako sam napredovala
 
offtopic:
grozno, najezim se kad vidim ovako nesto
 
drag&drop... postojecih kontrola u tab po zelji...
 
Znaci nije bilo problema vise?

uf, nisam se javljala jer sam pauzirala za vikend, u toku selidbe sam
radim sad, napravila sam onda sve sta mi treba za pocetak, tj par tih tabova, klase i to, i povezala sa mojim postojecim dijalogom (nisam popunjavala onim sta mi treba za sad) i javlja razne cudne greske, ali nevezane za tab pa ih resavam redom, necu da cimam oko toga, tako da jos nisam dosla do toga da isprobam kako sve to funkcionise.
 
Poslednja izmena:
Nije valjda da je losiji vizuelni editor za c++?

Nije, ali su MFC CTabCtrl i .NET TabControl klase drugačije realizovane.

U C++-u moraš sam da sakrivaš i prikazuješ odgovarajuće dijaloge kada korisnik klikne na neki tab.
 
Nije, ali su MFC CTabCtrl i .NET TabControl klase drugačije realizovane.

U C++-u moraš sam da sakrivaš i prikazuješ odgovarajuće dijaloge kada korisnik klikne na neki tab.
aha... OK mislio sam da je ovde u pitanju managed C++, ovo je MFC u stvari... u bre to je matoro...
 
MFC se koristi i danas, sta je tu matoro?
 
@igor
mozda nije zastarelo, ali znam recimo da mnogo vise "alatki" za rad sa GUIjem ima u drugim programskim jezicima (barem su mi tako pricali drugari/poznanici) nego u C++u, a ja radim ovde jer..tako moram, to mi je zadatak.
 
GUI programiranje je nocna mora... u sustini stvar se svodi na odrzavanje redundance izmedju podataka u programu i podataka po GUI kontrolama. To je ubedljivo najdosadniji posao. U mom slucaju sam program i posao koji on odradjuje odradim za kratko vreme ali za GUI potrosim 5x vise vremena. Svasta sam probao... MFC, WX, .NET, WTL... za sada, najbrze radim sa WTL-om.
 
pa eto, ispadne ipak problem kad hocu tab (koji je kao dijalog za sebe u sustini) da stavim unutar posotjeceg, jer dodje do problema sa sledecim:
moj postojeci Script dialog tu je vec davno dodeljena klasa sa tim IDD i sve napravljeno,
enum { IDD = IDD_SCRIPT_DLG };
a ja sad dodam ovo,
enum { IDD = IDC_SCRIPT_TAB_DLG };
i onda jasno dodje do "sukoba"
i kao gresku dobijem sledece:
error C2365: 'IDD' : redefinition; previous definition was a 'enumerator'
see declaration of 'IDD'


pogledam sta mogu da uradim, mogu da stavim u namespace, tipa
namespace MAIN_DLG { enum { IDD = IDD_SCRIPT_DLG }; }
namespace TAB_DLG { enum { IDD = IDC_SCRIPT_TAB_DLG }; }


ali ne znam bas kako posle to da iskoristim i jos plus, meni IDD treba ovde
IMPLEMENT_DYNAMIC (CScriptDlg, CTricDialog)
CScriptDlg::CScriptDlg (CWnd* pParent /*=NULL*/)
: CTricDialog (CScriptDlg::IDD, pParent)


i tu ne znam sta da radim cak i sa tim sto sam razdvojila an 2..

e sad, mislila sam da onda napravim kompletno odvojen tab dijalog za sebe i stavim ga u taj moj glavni kao child dijalog..jer meni kao treba jedan deo starog dijaloga tj glavnog da ostane fiksan.
 
Moja preporuka offtopic je wxdevc++ okruzenje za gui za native windows aplikacije, druga alternativa je .net za gui koji importuje native dll-ove , a treca alternativa je promena posla ...

MFC iz WxWidgets su jako slicni i mrzim ih... najdebilnije je kad se rucno edituje .rc fajl i to kompletno zezne visual c++ okruzenje...
 
Mene .net izrazito iritira zbog toga sto su opis forme smestili u source code pa kada se nakupi veci broj kontrola prelazak iz code view u design view ume da potraje, a najmanja promena u code-u koja je uradjena bez wizarda moze totalno da zbuni okruzenje i vise nije u stanju da prikaze design view. Jos ako se dodaju custom kontrole, VS puca ko zvecka.
U pocetku je sve lako i brzo, a posle mrzis sebe zasto si zapoceo razvoj u .net-u.

Po meni bi idealno bilo da se odradi mesavina XML-a i programskog jezika, pa da struktirne podatke mozes da uneses direktno u code-u pomocu XML-a i da postoje 2 kompajlera.. jedan za prog.jezik, a drugi za XML pa ce linker sve to da spaja.. ali odoh u offtopic...
 
Poslednja izmena:
@yoyo: mislis na VCL form designer ;)
 
na kraju sam sve sredila. toliko sam "brljala" na pocetku (citajuci razne ideje), da sam sve izbrisala i napisala novo iz pocetka i ok je. stos sa tim spajanjem taba unutar dijaloga je bio samo u kontroli, a ja sam uporno kao *****, stavljala tab kao da je novi dijalog. sve lepo radi
ako nekom bude trebala pomoc oko ovoga u C++, eto me :) hvala svima jos jednom
 
VCF je za sada najbolje sto sam video... Skroz je OO i jako lici na javu i intuitivan je
 
Ja imam svoje wrappere (nedovrsene malko) koji lice na WTL. U pravu je yooyo da je WTL najzgodniji.
 
Moja preporuka offtopic je wxdevc++ okruzenje za gui za native windows aplikacije, druga alternativa je .net za gui koji importuje native dll-ove , a treca alternativa je promena posla ...

MFC iz WxWidgets su jako slicni i mrzim ih... najdebilnije je kad se rucno edituje .rc fajl i to kompletno zezne visual c++ okruzenje...


put veceg ali sladjeg otpora je alternativa self isprogramirana WinApi32 biblioteka za GUI. Ko zeli i ima volje da pocne iz pocetka :)
obavezna literatura Jeffrey Richtera (Microsoft Press , Windows Programming for Experts)
 
yooyo ,po tvojim postovima , cini mi se da bi trebalo da mozda probash WPF(tu imash i XAMl Xml like jezik kojim opisujesh formu) .net 3.5 i Gui Data Binding (cije je korishcenje maltene podrazumevano da cesh po defaultu da ga koristish kao najbolji nacin rada) -> shljaka veoma dobro. Radim vec duze vreme i zadovoljan sam samo shto je WPF biblioteka malkice sporija, ali graficki izgleda 10X bolje nego .net 2.0 windows forms.
 
Poslednja izmena:
WPF radi lepo samo u Visti.. U XP-u se vuce ko prebijen... kazu zbog driver modela... A obzirom da nemam nameru da pravim Vista only programe, onda WPF otpada.
 
Nazad
Vrh Dno