Pogledajte određenu poruku
Staro 09. 06. 2009.   #6
cocteau
novi član
 
Datum učlanjenja: 08.06.2009
Poruke: 5
Hvala: 0
0 "Hvala" u 0 poruka
cocteau is on a distinguished road
Default

Citat:
Originalno napisao Dragi Tata Pogledajte poruku
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.
rekla sam da cu ostaviti kod ako zatreba - ima ga puno pa sam mislila da nije najbolje poceti tako.
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;
}
OnInit drugog child dijaloga na kom je ta lista

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;
}
kada se klikne na ono dugme Edit u tom dijalogu:

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();
}
cocteau je offline   Odgovorite uz citat