Exemple #1
0
void CAliasDlg::OnEdit2() 
{
CEditDlg dlg;

  dlg.m_strText = GetText (m_ctlAliasName);

  dlg.m_strTitle = Translate ("Edit alias 'match' text");

  dlg.m_bRegexp = m_ctlRegexp.GetCheck ();

  if (dlg.DoModal () != IDOK)
      return;

  m_ctlAliasName.SetWindowText (dlg.m_strText);
	
}
void CFPAnalysisView::OnEditData() 
{
   CEditDlg dlgEdit;
   dlgEdit.DoModal();
}
Exemple #3
0
// --------------------------------------------------------------------------------------------
// EditierDialog anzeigen;
// in ulCnt wird die Anzahl und in ppIOG werden die ObjektGeometrien der aktuell editierten
// Objekte übergeben;
// wenn Linienobjekte verlängert werden sollen, werden in iCloseCnt, plCloseX und plCloseY
// die Anzahl und die Koordinaten der Endpunkte dieser Linienobjekte erwartet;
// in piResult wird das Ergebnis der DialogBedienung (OK, Abbrechen, Fortsetzen, Inselbeginn)
// zurückgegeben
STDMETHODIMP CGeoEditExtension::ShowEditDialog (LPCSTR pcCapt, LPCSTR pcRegKey, ulong ulCnt,
	 IUnknown** ppIOG, int* piGrabCnt, long* pGrabPktX, long* pGrabPktY, HRESULT hrComBorder,
	 long lComONr, int iCloseCnt, long* plCloseX, long* plCloseY, int* piResult)
{
	_ASSERTE (pcRegKey != NULL);
	_ASSERTE (piResult != NULL);

// Neueditierung (true) oder Modifizierung (false), also z.B. Linienverlängerung bzw.
// Inselergänzung
bool bNewEdit = (0 == strcmp (g_cbGeoEditNewPoint, pcRegKey) ||
				 0 == strcmp (g_cbGeoEditNewLine, pcRegKey) ||
				 0 == strcmp (g_cbGeoEditNewArea, pcRegKey));

// !!!! es wird vorläufig nur EIN ppIOG-Objekt berücksichtigt !!!!!
WObjektGeometrie wObj = *ppIOG;		// mit implizitem QueryInterface

CEditDlg sheetED (pcCapt, wObj, lComONr, piGrabCnt);
// eigene Pages zum	Einfügen in sheetED
CEditBaseDlg pageEB (pGrabPktX, pGrabPktY, hrComBorder, iCloseCnt,
					 plCloseX, plCloseY, bNewEdit);
CEditCoordDlg pageEC (iCloseCnt, plCloseX, plCloseY);

	sheetED.AddPage (&pageEB);	// 1. Page einfügen
	sheetED.AddPage (&pageEC);	// nächste Page hinzufügen

	// zusätzliche Pages über die Registry nachladen
	sheetED.LoadExtPagesFromRegistry (pcRegKey, ulCnt, ppIOG);

	sheetED.Show();

	if (piGrabCnt) *piGrabCnt = sheetED.GetGrabCnt();

	*piResult = sheetED.Result();

int iMarkGr;	// Markergröße
Rectangle Rec;	// rechteckiger Bereich, der (evtl.) gezeichnet werden soll

	m_wTopObjs->GetMarkerSizeBS (&iMarkGr);
	wObj->RectangleToDraw2 ((RECT*)&Rec, iMarkGr);

HRESULT hrRet = S_OK;

	switch (*piResult)
	{
		case IDOK:
			if (bNewEdit)
			{
			BSTR bsObjName = A2BSTR("");	// noch leerer Objektname  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

				hrRet = StoreNewObject (wObj, bsObjName);
				if (S_FALSE == hrRet) {
				// Objekt wurde wieder gelöscht, IDCANCEL simulieren
					if (piGrabCnt) 
						*piGrabCnt = 0;
					DEX_RePaintRectWait (Rec);	// Objekt auf Bildschirm durch Zeichnen löschen
					*piResult = IDCANCEL;
					return S_FALSE;
				}
			}
			// die Linienverlängerungen werden in LineElongation.cpp abgespeichert;
			// Flächenobjekte mit hinzugefügten Inseln werden in IslandAdd.cpp abgespeichert
			else if	(0 != strcmp (g_cbGeoEditLineElongat, pcRegKey) &&
					 0 != strcmp (g_cbGeoEditIslandAdd, pcRegKey))
			{
				_ASSERTE (false);
				hrRet = E_UNEXPECTED;
			}

			if (piGrabCnt) *piGrabCnt = 0;

			// für "Insel hinzufügen" erfolgt das Zeichnen wegen evtl. Geometriefehler auf
			// jeden Fall in StoreAreaWithNewIsland()
			if (0 != strcmp (g_cbGeoEditIslandAdd, pcRegKey))
				DEX_RePaintRectWait (Rec);
			break;

		case IDCANCEL:
			if (piGrabCnt) *piGrabCnt = 0;
			DEX_RePaintRectWait (Rec);	// Objekt auf Bildschirm durch Zeichnen löschen
			break;

		case IDB_CONTINUE:
		case IDB_ISLAND:
			break;

		default:
			_ASSERTE (false);
			hrRet = E_UNEXPECTED;
			break;
	}

	return hrRet;

} // ShowEditDialog