Witam jestem studentem 1roku. Mam do napisania program w Visual studio za pomocą MFC który będzie bazą danych towarów . Wymyśliłem to tak ,że program będzie składał się z dwóch okien dialogowych. Pierwsze będzie zawierać listę kategorii (robię ją za pomocą List Box) oraz buttony do dodawania kolejnych list kategorii , usuwania, oraz wyszukiwania jakiejś listy. Czyli np mam listy kategorii : Podzespoły,Monitory,.. itd. I teraz klikając w listę kategorii np Monitory otworzy mi się drugie okno dialogowe w którym będą zawarte towary czyli monitory i info o nich np nazwa ,cena ,ilość ,inne dane (ta listę chcę stworzyć za pomocą Control List) i będą tam także buttony do dodawania usuwania i wyszukiwania konkretnych towarów. I teraz mam problem jak to ze sobą połączyć żeby to wszystko chodziło i żeby do każdej kategorii tworzyło nowa listę towarów. Wydaję mi się że listę kategorii (w list boxie) powinienem wypełnić za pomocą tablic np na forze , dzięki temu każda kategoria takiej listy miałby swój indeks 1,2,3... . I wtedy mógłbym do konkretnego indeksu np monitory indeks 2 otwierać towary (control list) tylko dla właśnie dwójki. A swoją drogą control list też musze wypełnić za pomocą tablicy. Nie wiem za bardzo jak to zapisać. Potrafię zrobić list box'a ale nie wypełniam go za pomocą tablicy. tylko np tak:
BOOL Csemv3Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
m_lista.AddString(_T("Monitory")); // **tutaj wyświetla mi kilka podstawowych kategorii **
m_lista.AddString(_T("Komputery"));
m_lista.AddString(_T("Laptopy"));
m_lista.AddString(_T("Podzespoły"));
m_lista.AddString(_T("Obudowy"));
m_lista.AddString(_T("Drukarki"));
m_lista.AddString(_T("Części"));
m_lista.SetCurSel(0); // **tutaj ustawiam podświetlenie pierwszej kategorii**
m_ListCount = m_lista.GetCount(); // **tutaj mi zlicza wszystkie kategorie i wyświetla w edit boxie**
UpdateData(FALSE);
SetBackgroundColor(255255); // **kolor tła**
return TRUE; // return TRUE unless you set the focus to a control
}
Za pomocą tej funkcji dodaje kolejne kategorie :
void Csemv3Dlg::OnAddtoList()
{
UpdateData();
m_lista.AddString(m_Add); // tutaj dodaje
m_ListCount = m_lista.GetCount(); // tutaj na nowo zlicza
UpdateData(FALSE);
// TODO: Add your control notification handler code here
}
Za pomocą tej funkcji usuwa jakąś kategorie :
void Csemv3Dlg::OnDeleteItem()
{
m_lista.DeleteString(m_lista.GetCurSel()); // tutaj usuwa
m_ListCount = m_lista.GetCount(); // tutaj na nowo zlicza
UpdateData(FALSE);
// TODO: Add your control notification handler code here
}
I to jest to co mam na razie do list box'a z kategoriami z tym ,że nie wiem jak to zrobić żeby wypełniało za pomocą tablicy, oraz nie wiem jak zrobić wyszukiwanie.
Dalej nie wiem jak właśnie zrobić to przejście z jakiejś kategorii do listy towarów utworzonej w Control list . Proszę o jakąś pomoc i czekam na odp . pozdrawiam (jeśli ktoś miałby chwilę czasu i mógłby przerobić to co mam i utworzyć takie połączenie to byłbym wdzięczny bo resztę już bym mógł zrobić bo nie wiem jak to zrobić)