Forumi


Povratak   PC Ekspert Forum > Računala > Software > Web dizajn, programiranje i ostalo
Ime
Lozinka

Odgovori
 
Uređivanje
Staro 21.01.2007., 14:28   #1
Dr. Beast
Premium
 
Datum registracije: May 2006
Lokacija: Rijeka
Postovi: 1,505
Visual C++

Kako da napravim da kada u ovom ispod dijalogu npr. odaberem nekog izvođača bude u combo boxu (ispod gdje piše album) jedan popis albuma, a kada odaberem nekog drugog izvođača bude samo poipis njegovih albuma? Napravio sam projekt pomoću MFC AppWizarda
: bonker :

Dr. Beast je offline   Reply With Quote
Staro 21.01.2007., 18:03   #2
immortal
Kernel panic
 
Datum registracije: Jan 2006
Lokacija: Zg
Postovi: 522
ako koristiš ms visual c++ 6 (ali vjerovatno je i u drugim verzijama isto):
napravi combo box, u class wizardu idi na add variable, upiši ime, kategorija: control, type: CComboBox. zatim popunjavaš combo box preko m_ime_combo_boxa.AddString("neki tekst"); nakon što korisnik izabere izvođača.
__________________
Keyboard error or no keyboard present
Press F1 to continue, DEL to enter SETUP

Zadnje izmijenjeno od: immortal. 21.01.2007. u 20:53.
immortal je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Staro 21.01.2007., 21:06   #3
Dr. Beast
Premium
 
Datum registracije: May 2006
Lokacija: Rijeka
Postovi: 1,505
Ma znam ja kako dodati stringove u combo box. Mene muči ovo: npr. ako pod izvodac odaberem neko_ime1 da se pod albumi pojave samo albumi od neko_ime1, a ako pod izvodac odaberem neko_ime2 da se pojave samo albumi od neko_ime2, ne i albumi od neko_ime2...
Dr. Beast je offline   Reply With Quote
Staro 22.01.2007., 10:00   #4
immortal
Kernel panic
 
Datum registracije: Jan 2006
Lokacija: Zg
Postovi: 522
Citiraj:
Autor Dr. Beast Pregled postova
Ma znam ja kako dodati stringove u combo box. Mene muči ovo: npr. ako pod izvodac odaberem neko_ime1 da se pod albumi pojave samo albumi od neko_ime1, a ako pod izvodac odaberem neko_ime2 da se pojave samo albumi od neko_ime2, ne i albumi od neko_ime2...
na drugom combo boxu složi funkciju za CBN_DROPDOWN (preko class wizarda):
Citiraj:
void CSdfgDlg::OnDropdownCombo2() //to je drugi combo
{
// TODO: Add your control notification handler code here
// -----------------------------------------------------------------------------
UpdateData(TRUE);
// ocisti sadrzaj drugog combo boxa
m_ctrCombo2.ResetContent(); // m_ctrCombo2 je varijabla drugog combo boxa (control)
if(m_SCombo1=="PARNI") { // m_SCombo1 je varijabla prvog combo boxa, ona sadrzi trenutno oznacen sadrzaj (CString)
m_ctrCombo2.AddString("2");
m_ctrCombo2.AddString("4");
m_ctrCombo2.AddString("6");
m_ctrCombo2.AddString("8");
}
if(m_SCombo1=="NEPARNI") {
m_ctrCombo2.AddString("1");
m_ctrCombo2.AddString("3");
m_ctrCombo2.AddString("5");
m_ctrCombo2.AddString("7");
}

// -----------------------------------------------------------------------------

}
znači, prije dropdowna drugog combo boxa, taj combo box se ispunjava s podacima prema trenutno označenom tekstu u prvom combo boxu (PARNI ili NEPRANI). dok se označi "parni" onda se upišu brojevi 2,4,6,8, a dok se označi "neparni" onda se prvo očisti sadržaj (da ne ostanu parni koji su već unutra) i upišu brojevi 1,3,5,7.
__________________
Keyboard error or no keyboard present
Press F1 to continue, DEL to enter SETUP
immortal je offline   Reply With Quote
Staro 22.01.2007., 10:32   #5
Dr. Beast
Premium
 
Datum registracije: May 2006
Lokacija: Rijeka
Postovi: 1,505
Javi mi se ovaj error:
error C2678: binary '==' : no operator defined which takes a left-hand operand of type 'class CComboBox' (or there is no acceptable conversion)

Ovako mi izgleda kod:
void CSeminarDlg::OnDropdownAlbum()
{
// TODO: Add your control notification handler code here

// OCISTI SADRZAJ COMBO BOXA ALBUMI
UpdateData(TRUE);

m_Album.ResetContent(); // m_Album je varijabla drugog combo boxa (control)
if(m_Izvodac=="Johnny Cash") { // m_Izvodac je varijabla prvog combo boxa, ona sadrzi trenutno oznacen sadrzaj (CString)
m_Album.AddString("2");
m_Album.AddString("4");
m_Album.AddString("6");
m_Album.AddString("8");
}
if(m_Izvodac == "Tom Waits") {
m_Album.AddString("1");
m_Album.AddString("3");
m_Album.AddString("5");
m_Album.AddString("7");
}
}


a ovako sam definirao varijable:
Dr. Beast je offline   Reply With Quote
Staro 22.01.2007., 10:47   #6
immortal
Kernel panic
 
Datum registracije: Jan 2006
Lokacija: Zg
Postovi: 522
moraš imati varijable koje su CString za uspoređivanje s "nekaj". za combo box sa izvođačima kreiraj još jednu varijablu koja je CString (nazovi ju m_sIzvodac, s kao string) i tu varijablu usporedi sa "Ime nekog".
edit: uglavnom, varijabla m_Izvodac mora biti CString da bi kod koji si ti napisao radio
__________________
Keyboard error or no keyboard present
Press F1 to continue, DEL to enter SETUP
immortal je offline   Reply With Quote
Staro 22.01.2007., 10:53   #7
Dr. Beast
Premium
 
Datum registracije: May 2006
Lokacija: Rijeka
Postovi: 1,505
Citiraj:
Autor immoRt4L Pregled postova
moraš imati varijable koje su CString za uspoređivanje s "nekaj". za combo box sa izvođačima kreiraj još jednu varijablu koja je CString (nazovi ju m_sIzvodac, s kao string) i tu varijablu usporedi sa "Ime nekog".
edit: uglavnom, varijabla m_Izvodac mora biti CString
Evo ovako sam riješio i sve radi za 5. Dodao sam još jednu funkciju da se kod drop down-a combo box-a od izvodaca odmah briše sadžaj combo box-a album:

void CSeminarDlg::OnDropdownAlbum()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
// OCISTI SADRZAJ COMBO BOXA ALBUMI
//m_Album.ResetContent(); // m_ctrCombo2 je varijabla drugog combo boxa (control)

CString izbor;
m_Izvodac.GetWindowText(izbor);
//m_Izvodac.GetLBText(izbor);
if(izbor == "Johnny Cash") { // m_SCombo1 je varijabla prvog combo boxa, ona sadrzi trenutno oznacen sadrzaj (CString)
m_Album.AddString("2");
m_Album.AddString("4");
m_Album.AddString("6");
m_Album.AddString("8");
}
if(izbor == "Tom Waits") {
m_Album.AddString("1");
m_Album.AddString("3");
m_Album.AddString("5");
m_Album.AddString("7");
}
}

void CSeminarDlg::OnDropdownIzvodac()
{
// TODO: Add your control notification handler code here
m_Album.ResetContent();
}


Puno hvala na pomoći : hello2 : Ako prolaziš kroz Rijeku javi se i idemo na : cheers2
Dr. Beast je offline   Reply With Quote
Oglasni prostor
Oglas
 
Oglas
Odgovori



Pravila postanja
Vi ne možete otvarati nove teme
Vi ne možete pisati odgovore
Vi ne možete uploadati priloge
Vi ne možete uređivati svoje poruke

BB code je Uključeno
Smajlići su Uključeno
[IMG] kod je Uključeno
HTML je Isključeno

Idi na