[ ex-baccko @ 04.11.2005. 22:46 ] @
Bok... svima ja sam tek početnik pa ne znam kako da povežem menu sa dialogom koji napravim za ta j menu...dali ko zna a sigurno zna neka mi javi bok... |
[ ex-baccko @ 04.11.2005. 22:46 ] @
[ 3MAJ86 @ 05.11.2005. 23:25 ] @
pazi, moraš da napraviš resurs menija. ne znam u kom alatu radiš... reci pa da ti konkretno objasnim.
kada napraviš resurs menija, onda treba da ga povežeš sa svojim dialog-om koji si napravio prethodno. u VC++ 6 imaš jednostavnu opciju da u dialog properties svog dialoga podesiš stavku ''menu'' gde samo izabereš ID svog menija i to je ceo posao... [ ex-baccko @ 11.11.2005. 09:11 ] @
Bok ovdje baccko izvini što nisam prošli put bio malo precizniji ja radim u Visual Studio c++ 6.0 ali radi se o tome
da ja napravim u resource Meni i Dialog ali ne znam ih povezati. NP : Menu dam ID 128 A Dialogu ID 100 u meniu napravim stavku Podaci o korisniku i Želim tu stavku da kada kliknem na nju da povežem sa Dilogom 100 kojem sam dao naziv Korisnici, pokušao sam da Dialogu dam ID_128 ali ne ide misliosam da vjerojatno trema negdje upisati neki kod u Referenci ali ne znam pa ako imate što konkretno pošaljitemi BOK.. [ 3MAJ86 @ 12.11.2005. 13:05 ] @
obično VS sam upisuje u referencu tvoje ID-jeve. ne treba posebno da se maltretiraš oko toga. kada napraviš resurs menija, onda ti on ga on po default-u nazove ja mislim IDR_MENU1 (ili nešto slično), zatim kada napraviš dijalog, on ga nazove IDD_DIALOG1. kada napraviš dijalog (i dok stavljaš kontrole na šablon za dijalog), klikni desnim dugmetom na taj dijalog i izaberi properties. tu ćeš pod stavkom general imati opciju menu, pa iz padajuće liste ti izabereš tvoj IDR_MENU1 (ili kako je već nazvan), i on će se ''zalepiti'' za dijalog.
ako imaš bilo kakvih problema oko ovoga viči, da kačim sličice ovde, nije problem. ne mogu sada to da uradim jer ne piskaram od kuće [ ex-baccko @ 01.12.2005. 00:18 ] @
Kako da povežem Access moju bazu podataka i dialog u exe fajlu.
Detaljnije: Napravio sam prostu bazu podataka u Accessu i želim je povezati sa V.S.C++6.0. uradio sam sledeće ![]() i da nazivi IME;PREZIME;itd.budu upisani u access bazu kada kontrol EDIT dam neki ID i koji ID za koji naziv.Pokušao sam da moje nazive iz Accessa koji se vide u "classes" tj u klasama sa njihovim nazivima dodijelim njihov ID kontrol EDITU u Dialogu ali ne ide.Druže pomagaj,veoma sam uporan i istrajan u svemu pa ako mi ti i ne pomogneš bit ću ti zahvalan za ono prethodno ajd bok. [ ex-baccko @ 02.12.2005. 20:18 ] @
Druže jesili mi dobio poruku BOK BACKO.,..
[ tupito @ 10.12.2005. 22:45 ] @
Malo si nejasan sto se tice onoga sto zelis sa bazom ali evo ti:
znaci u accesu napravi bazu tabele i queryije koji su ti potrebni i onda ces u svoj aplikaciji izvesti klasu, za svaki query i tabelu koju zelis, iz klase CRecordSet: Code: // code generated on 15. januar 2005, 22:36 class CFirmeSet : public CRecordset { public: CFirmeSet(CDatabase* pDatabase = NULL); DECLARE_DYNAMIC(CFirmeSet) // Field/Param Data // The string types below (if present) reflect the actual data type of the // database field - CStringA for ANSI datatypes and CStringW for Unicode // datatypes. This is to prevent the ODBC driver from performing potentially // unnecessary conversions. If you wish, you may change these members to // CString types and the ODBC driver will perform all necessary conversions. // (Note: You must use an ODBC driver version that is version 3.5 or greater // to support both Unicode and these conversions). long m_ID; long m_FirmaID; CStringW m_NazivFirme; CStringW m_Tel; CStringW m_Fax; CStringW m_DelatnostID; CStringW m_Delatnost; CStringW m_Ziro; CStringW m_Adresa; CStringW m_MatBroj; CStringW m_PIB; double m_Rabat; BOOL m_Aktivan; // Overrides // Wizard generated virtual function overrides public: virtual CString GetDefaultConnect(); // Default connection string virtual CString GetDefaultSQL(); // default SQL for Recordset virtual void DoFieldExchange(CFieldExchange* pFX); // RFX support // Implementation #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif }; kao sto vidis za svaku kolonu tabele dobijas po jednu promenljivu, zatim napravis famozni dialog i u njega ubacis ListCtrl u kome ces da izlistas sadrzaj svoje tabele, ovde sam radio sa samo jednom kolonom ali isti rad je i za recimo deset kolona(ovde je samo izlistano ime firme, a moglo je i adresa,tel itd.) Code: // CFirmaListaDlg dialog #pragma once #include "afxcmn.h" #include "FirmeSet.h" class CFirmaListaDlg : public CDialog { DECLARE_DYNAMIC(CFirmaListaDlg) public: CFirmaListaDlg(CWnd* pParent = NULL); // standard constructor virtual ~CFirmaListaDlg(); // Dialog Data enum { IDD = IDD_FIRMALISTADLG }; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support DECLARE_MESSAGE_MAP() public: CFirmeSet m_set; afx_msg void OnBnClickedButton2(); virtual BOOL OnInitDialog(); CListCtrl m_list; void UpdateList(void); afx_msg void OnBnClickedButton1(); afx_msg void OnHdnItemdblclickList1(NMHDR *pNMHDR, LRESULT *pResult); afx_msg void OnBnClickedButton3(); protected: virtual void OnOK(); public: afx_msg void OnClose(); protected: virtual void OnCancel(); }; Code: //cpp fajl CFirmaListaDlg dialog BOOL CFirmaListaDlg::OnInitDialog() { CDialog::OnInitDialog(); // TODO: Add extra initialization here m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES); m_list.InsertColumn(0,"Naziv firme",LVCFMT_LEFT,300); UpdateList(); m_list.SetItemState(0, LVIS_FOCUSED|LVIS_SELECTED, LVIS_FOCUSED|LVIS_SELECTED); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CFirmaListaDlg::UpdateList(void) { m_list.DeleteAllItems(); //CFirmeSet set; m_set.m_strFilter=_T("[Aktivan]"); m_set.m_strSort=""; // set.m_strSort=_T("NazivFirme"); m_set.Open(); //m_set.Requery(); CString str; for(int i=0;!m_set.IsEOF();i++,m_set.MoveNext()) { str=m_set.m_NazivFirme; m_list.InsertItem(i,str); m_list.SetItemData(i,(DWORD)m_set.m_FirmaID); } m_set.Close(); } init dialog se poziva pri inizijalizaciji(to radi framework), tu sam ubacio samo jednu kolonu u listctrl a mogo sam i jos isti rad, tu se poziva funkcija UpdateList kaja cita bazu tj. tabelu ili query i puni ListCtrl, tu vidis glavne komande za CRecordSet Open,MoveNext i Close, za editovanje koristis kombinaciju: Code: BOOL CFirmaListDlg::EditFirmaNaziv(long nFirmaID,const CString& strNovNaziv) { // e sad mozes na vise nacina da naces slog nFirmaID koji zelis da promenis ovo je najidiotskiji m_set.m_strFilter=""; m_set.m_strSort=""; m_set.Open(); for(;!m_set.IsEOF();m_set.MoveNext()) { if(nFirmaID == m_set.m_FirmaID) { // to je taj slog koji zelis da promenis m_set.Edit(); m_set.m_NazivFirme=strNovNaziv;//menjas vrednost(i) koje zelis m_set.Update();// updatujes bazu- obavezno m_set.Close();// zatvaras- obavezno retun TRUE;// uspesno zavrsio i izlazi } } m_set.Close(); return FALSE; } znaci nema nista samo od sebe,vec sve moras da uradis sam. Ovo imas sve detaljno objasnjeno u msdn-u i imas uradjene lepe primere za rad sa odbc bazama. A za osnovne stvari imas i tutorial, a ako nemas MSDN onda dzaba ti VS. [ ex-baccko @ 31.05.2006. 14:08 ] @
Stari baš ti hvala skontao sam nešto nisam bio tu neko vrijeme pa se nismo čuli ako kada budeš prolazio ili lično dolazio u živinice javi mi na mail:[email protected] moja su ti vrata uvijek otvorena pozdrav S poštovanjem Alem Dervišević Pozdrav!!!!!!!
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|