|
![]() |
#1 |
novi član
Datum učlanjenja: 08.06.2009
Poruke: 5
Hvala: 0
0 "Hvala" u 0 poruka
![]() |
![]() ups izvinjavam se, i to zaboravih reci.
visual studio 2005, c++ za dijaloge, da, MFC - Dialog editor, standardno sta opcije iz VS nude, dugmice, edit boxove, liste, picture control (to koristim upravo za child dijaloge) itd. (nadam se da sam dala odgvor na pitanje) |
![]() |
![]() |
![]() |
#2 |
dinosaurus
Master
Datum učlanjenja: 29.12.2005
Lokacija: Nova Engleska
Poruke: 636
Hvala: 79
263 "Hvala" u 66 poruka
![]() ![]() ![]() |
![]() Mogu samo da nagađam ovako bez koda, ali da li ti je ta "nestajuća" list kontrola deklarisana kao lista u resource editoru ili se dodaje dinamički na dijalog?
Takođe, nije mi jasno čemu ta picture control ako ne prikazuješ slike. U stvari, kladim se da je taj "prazan" prostor koji se vidi kad zatvoriš dijaloge baš ta kontrola. |
![]() |
![]() |
![]() |
#3 | |
novi član
Datum učlanjenja: 08.06.2009
Poruke: 5
Hvala: 0
0 "Hvala" u 0 poruka
![]() |
![]() Citat:
ta lista jeste list control na jednom child dijalogu, koji se jos negde drugde koristi, a taj sam child je istovremeno child od onog koji se nalazi na ovom parent dijalogu. -> vidi sliku ![]() sad, cemu taj picture control, on mi sluzi kao mesto na kom dolazi child dijalog. kako inace da osiguram gde, tj na kojoj poziciji u tom parentu, ce se zakaciti child? tako je radjeno pre u programu u nekim jednostavnijim slucajevima. nisam znala sta drugo da radim deo koda, koji bi ti mogao biti interesantan: mesto u glavnom dijalogu gde se radi spajanje dijaloga: Kôd:
case 0: dlgInfolist.pCurrDrawing = pCurrDrawing; dlgInfolist.pDwgBlock = pDwgBlock; dlgInfolist.vdi = vdi; dlgInfolist.IsDDC = IsDDC; if (pdialog) { DetachChildDialog (pdialog); } if (! (AttachChildDialog (&dlgInfolist, &m_FdevEditChild))) { TricErrorBox(IDS_ERR_FILL_DIALOG); return FALSE; //EndDialog (IDCANCEL); } else { pdialog = &dlgInfolist; } //dlgInfolist.FillDlgCtrl(); dlgInfolist.ShowWindow(TRUE); break; u tom prvom child dijalogu, OnInit fja Kôd:
BOOL CFdevEditInfolist::OnInitDialog() { CTricDialog::OnInitDialog (); bDlgInfolistActive = TRUE; dlgDDC_RA.bCheckAutoCalc = pDwgBlock->data.iGE_Status; //DetachChildDialog (&dlgDDC_RA, &m_DDC_RA); //if (! (AttachChildDialog (&dlgDDC_RA, &m_DDC_RA) && LoadData () && FillDlgCtrl ())) { if (GetProject ()->cInfoCalc.GetProInfoCalcData (GetProject ()->ID)) { if (GetProject ()->cInfoCalc.arrProjectInfoCalc.GetCount () > 0) { dlgDDC_RA.bAutoCalc = TRUE; } } if (! (AttachChildDialog (&dlgDDC_RA, &m_DDC_RA) && LoadData () )) { TricErrorBox (IDS_ERR_FILL_DIALOG); EndDialog (IDCANCEL); return FALSE; } FillDlgCtrl(); return TRUE; } Kôd:
BOOL CFieldDevicePropsDlg::OnInitDialog () { CTricDialog::OnInitDialog (); if (!DBConnection.CheckConnection ()) { TricErrorBox (IDS_ERR_CONECTION); EndDialog (IDCANCEL); return FALSE; } ((CButton*) GetDlgItem (IDC_BTN_VISIBLE))->ShowWindow (bShowVisibleColumn); listProperties.SetExtendedStyle (LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES); if (bShowVisibleColumn) { m_staticImageList.Create (16, 16, ILC_MASK, 0, 1); m_staticImageList.Add (acedGetAcadWinApp ()->LoadIcon (IDI_OFF)); m_staticImageList.Add (acedGetAcadWinApp ()->LoadIcon (IDI_ON)); listProperties.SetImageList (&m_staticImageList, LVSIL_SMALL); } AddControl (IDC_TEXT_CAPTION, sizeResize, sizeNone); AddControl (IDC_LIST_PROPERTIES, sizeResize, sizeResize, TRUE,TRUE); AddControl (IDC_CHK_USEFUNCTIONTYPES, sizeResize, sizeRepos, TRUE, TRUE); AddControl (IDC_CHK_USEAUTOCALC, sizeResize, sizeRepos, TRUE, TRUE); AddControl (IDC_BTN_EDIT, sizeNone, sizeRepos, FALSE); if (bShowVisibleColumn) { AddControl (IDC_BTN_VISIBLE, sizeNone, sizeRepos, FALSE); } AddControl (IDC_BTN_SELECTALL, sizeRepos, sizeRepos, FALSE); AddControl (IDC_BTN_DELESECTALL, sizeRepos, sizeRepos, FALSE); DisableControls (); return TRUE; } Kôd:
void CFieldDevicePropsDlg::OnEdit () { UpdateData (); // first find out which props are selected int iCount = listProperties.GetItemCount (); CTricArray<CFieldDeviceProps*> arrSelected; int i; for (i = 0; i < iCount; i++) { if (listProperties.GetItemState (i, LVIS_SELECTED) == LVIS_SELECTED) { arrSelected.Add (&arrProps [i]); } } // then edit all of them for (i = 0; i < arrSelected.GetSize (); i++) { // This runs the dialog "CDPFunctionSelectDlg()" SetNumberOfFunctions (*arrSelected [i]/*, _wtoi (strCont) */); if (arrSelected [i]->GetNumberOfFunctions () > 0) { arrSelected [i]->SetVisible (1); } } /*::InvalidateRect(listProperties.m_hWnd, NULL, TRUE); listProperties.UpdateWindow();*/ FillList (); listProperties.SetFocus(); } |
|
![]() |
![]() |
![]() |
#4 |
dinosaurus
Master
Datum učlanjenja: 29.12.2005
Lokacija: Nova Engleska
Poruke: 636
Hvala: 79
263 "Hvala" u 66 poruka
![]() ![]() ![]() |
![]() Pojma nemam
![]() Šta kaže Spy++? Prati poruke koje stižu toj kontroli i vidi da li će da se pojavi nešto kao WM_DESTROY. |
![]() |
![]() |
![]() |
|
|
![]() |
||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Double float problem - resen, ali ima dodatni problem :0 | ljtruba | (X)HTML, JavaScript, DHTML, XML, CSS | 34 | 23. 08. 2008. 02:28 |