// -------------------------------------------------------------------------------------------- // Reaktion auf Click eines Buttons void COptionsDlg::ButtonClick (ControlEvt e) { switch ((uint) e.GetControlID()) { case IDC_FEATFROMORIGIN: m_Descript.SetText (ResString (ResID (IDS_KOMM22, pRF), 250).Addr()); break; case IDC_ORIGINDEL: m_CBoxMark.SetChecked (false); m_CBoxShowOrig.SetChecked (false); m_Descript.SetText (ResString (ResID (IDS_KOMM23, pRF), 250).Addr()); break; case IDC_ORIGINMARK: m_CBoxDelete.SetChecked (false); m_Descript.SetText (ResString (ResID (IDS_KOMM24, pRF), 250).Addr()); break; case IDC_SHOWNEW: m_Descript.SetText (ResString (ResID (IDS_KOMM25, pRF), 250).Addr()); break; case IDC_SHOWORIG: m_CBoxDelete.SetChecked (false); m_Descript.SetText (ResString (ResID (IDS_KOMM26, pRF), 250).Addr()); break; } AdjustSheetWizardBttns (this, m_dwFlags); // die nachfolgende Zeile ist erforderlich, weil nicht immer OnKillActive() kommt PrepareResult(); } // ButtonClick
// -------------------------------------------------------------------------------------------- // aktuellen Flächeninhalt in Statuszeile anzeigen bool CNewArea::AktuelleWerteAnzeigen (Point Pt) { if (! m_wObj.IsValid() || // der 1. Punkt der zu editierenden Fläche ist noch nicht gesetzt bzw. m_bIsland) // Beginn einer neuen Insel wurde soeben angezeigt: return false; // deshalb keinen aktuellen Flächeninhalt anzeigen m_dAktDreieck = DreieckInhalt (Pt, m_FirstPkt, m_LastPkt, m_pCT); string sOutBuff = ""; // Ausgabepuffer double dZwFlInh; // aktueller Zwischenstand des Flächeninhalts if (1 == m_iKCnt) // Neueditierung der Außenkontur dZwFlInh = fabs(m_dAktGesFlaeche + m_dAktDreieck); else // Neueditierung einer Innenkontur { sOutBuff += ResString (ResID (IDS_AKTINSEL, pRF), 40); FlInhaltNormieren (fabs(m_dAktInsel + m_dAktDreieck), sOutBuff); sOutBuff += "; "; dZwFlInh = m_dAktGesFlaeche - fabs(m_dAktInsel + m_dAktDreieck); } sOutBuff += ResString (ResID (IDS_GESAMTINHALT, pRF), 40); FlInhaltNormieren (dZwFlInh, sOutBuff); if (m_dAktDreieck != 0. || dZwFlInh != 0.) DEX_SetMessageStringNoKickIdle (sOutBuff.c_str()); return true; } // AktuelleWerteAnzeigen
// -------------------------------------------------------------------------------------------- // Bezug zur Erweiterung "Objektoperationen" herstellen HRESULT CGeoEditExtension::ObjOperInterface (IUnknown** ppIObjOper) { HRESULT hr = S_OK; WExtendObjOper wObjOper; // Interface für Ankopplung von ObjOper.ext if (m_pXtnSite) { hr = m_pXtnSite->GetXtension (CLSID_GeometrieOperationen, IID_IExtendObjOper, (LPVOID*)wObjOper.ppi()); // "detach": Weiterreichen des Pointers ohne Release() und erneutes AddRef() *ppIObjOper = wObjOper.detach(); } else hr = E_UNEXPECTED; if (FAILED (hr) || // Fehler, z.B. ObjOper.ext nicht verfügbar ! m_pXtnSite) { ResString resText (ResID (IDS_NOOBJOPER, pRF), 250); ResString resCapt (ResID (IDS_LONGCLASSNAME, pRF), 50); MessageBox (__hWndM, resText.Addr(), resCapt.Addr(), MB_ICONEXCLAMATION | MB_OK); return hr; } return hr; } // ObjOperInterface
// -------------------------------------------------------------------------------------------- STDMETHODIMP CRegOperatPropAct::EndAction (DWORD, IDataObject** ppDataOut) { _ASSERTE (m_ObjsIter != m_InObjs.end()); *ppDataOut = 0; try { WEnumLONG wEnumInObj (*m_ObjsIter); // die zu bearbeitenden Objekte WEnumLONG wEnumOutObj; // Ergebnisobjekte der ausgewählten Operation // Optionen abfragen DWORD dwOptions = 0x00; if (SUCCEEDED(EnsureOptionsIF())) { _ASSERTE(m_wOperOptions.IsValid()); m_wOperOptions->GetOptions (&dwOptions); } // im Dialog ausgewählte Operation ausführen THROW_FAILED_HRESULT (m_pRegOperDlg->ExecuteOperation (m_hPr, wEnumInObj, dwOptions, wEnumOutObj.ppi())); m_ObjsIter++; if (wEnumOutObj.IsValid()) { // IDataObject abfragen WDataObject IDO (CLSID_DataTransferObject); // Ergebnisobjekte im DataObjekt IDO speichern THROW_FAILED_HRESULT (SetEnumLONGData ( (IEnum<LONG>*)(IEnumLONG*)wEnumOutObj, IDO)); // Resultat setzen *ppDataOut = IDO.detach(); if (0 == wEnumOutObj->Count()) { ResString resTitel (ResID (IDS_LONGCLASSNAME, pRF), 50); ResString resText (ResID (IDS_BOXTEXT1, pRF), 200); MessageBox (__hWndM, resText.Addr(), resTitel.Addr(), MB_ICONINFORMATION | MB_OK); } } } catch (_com_error& hr_result) // 23.09.99 { DELETE_OBJ (m_pRegOperDlg); // bei Fehler Dialog wieder freigeben return _COM_ERROR(hr_result); // 23.09.99 } if (m_ObjsIter != m_InObjs.end()) // es kommen noch weitere Daten return S_FALSE; DELETE_OBJ (m_pRegOperDlg); // es kommen keine Daten mehr return S_OK; } // EndAction
// -------------------------------------------------------------------------------------------- // Ermittlung der Cursorposition bei 1 Strecke und 1 Gerade HRESULT CRestrictLine::CursorToSegmentStraight (Point MSPt, Point EPt11, Point EPt21, Point EPt12, Point EPt22, POINT* pPTCur) { Point SectPt1, SectPt2; SectScreen ssRet = SegmentStraightIntersection (EPt11, EPt21, EPt12, EPt22, SectPt1, SectPt2); if (INSECT == ssRet) { *pPTCur = (POINT&)SectPt1; return S_OK; } ResString rsCapt (ResID (IDS_LONGCLASSNAME, pRF), 50); if (OUTSECT == ssRet) { ResString rsText (ResID (IDS_OUTSECTPOINT, pRF), 200); if (IDYES == MessageBox (__hWndM, rsText.Addr(), rsCapt.Addr(), MB_ICONQUESTION | MB_YESNO)) { ExpandingSreenSection (SectPt1); pPTCur->x = 0; // an dieser Stelle könnte mehr Aufwand getrieben werden, damit die NEUE Position pPTCur->y = 0; // von SectPt nach der Vergrößerung des Sichtausschnittes ermittelt wird !!!!!!! return S_OK; } return S_FALSE; // IDNO } if (INFISECT == ssRet) // Strecke liegt vollständig auf der Geraden { double dLotPX, dLotPY; GeradenLotPunkt (MSPt.X(), MSPt.Y(), m_EPt1.X(), m_EPt1.Y(), m_EPt2.X(), m_EPt2.Y(), dLotPX, dLotPY); CursorToStraight (MSPt, dLotPX, dLotPY, SectPt1, SectPt2, pPTCur); return S_OK; } if (NOSECT == ssRet) { ResString rsText (ResID (IDS_NOSECTPOINT, pRF), 250); MessageBox (__hWndM, rsText.Addr(), rsCapt.Addr(), MB_ICONEXCLAMATION | MB_OK); pPTCur->x = -1; pPTCur->y = -1; return S_FALSE; } DEX_Error (RC_RestrictLine, EC_NOINTERSECTION); return E_FAIL; } // CursorToSegmentStraight
CEditCoordDlg::CEditCoordDlg (int iCloseCnt, KoOrd* plCloseX, KoOrd* plCloseY, KoOrd x, KoOrd y) : CPropertyPage (ResID(IDD_COORDMODIFY, pRF), ResString (ResID(IDS_EDITCOORDCAP, pRF), 32)), m_X (this, IDE_XKOORD), m_Y (this, IDE_YKOORD), m_DeleteButton (this, IDB_DELETE), m_DeleteText (this, IDT_DELETE) { StandardWerte (iCloseCnt, plCloseX, plCloseY, x, y); }
// -------------------------------------------------------------------------------------------- // ComboBox füllen void CTopoRelRefDlg :: FillComboBox (void) { ResourceFile RF (g_pDLLName); ResString resNewItem (ResID(IDS_ATLEAST, &RF), 20); m_RefTypeList.AddString (resNewItem, 0); resNewItem = ResString (ResID(IDS_ATMOST, &RF), 20); m_RefTypeList.AddString (resNewItem, 1); resNewItem = ResString (ResID(IDS_EXACTLY, &RF), 204); m_RefTypeList.AddString (resNewItem, 2); }
// KK990927 //Bool Header :: GetComment (ulong &MK) Bool Header :: GetComment (ulong &MK,ulong ID) { if ( 0L == ID) return True; ResString Text (ResID (IDS_COMMENTKODE, &g_pTE -> RF()), 30); if ((MK == 0) || (MK == -1)) MK = DEX_GetUniqueSysMCode(); // KK000608 ----------------------------------- #if _MSC_VER >= 1100 HPROJECT hPr = DEX_GetObjectsProject(ID); long lMKode = MK; MK = DEX_MapMCodeToHandle(hPr,lMKode); // -------------------------------------------- #endif if (_GetMerkmalsKode (MK, (char *) Text.Addr ()) && // (CreateMerkmal (MK, (pchar) Text.Addr (), TextObjLen) == EC_OKAY)) (CreateMerkmal (MK, (pchar) Text.Addr (), TextObjLen, ID) == EC_OKAY)) return True; else return False; }
// -------------------------------------------------------------------------------------------- // längere Beschreibung wird in pBuffer (der Länge wLen) zurückgegeben STDMETHODIMP CRegOperatPropAct::HelpInfo (LPSTR pBuffer, ULONG wLen, LPSTR pHelpFile, ULONG *pulHelpCtx) { try { if (NULL != pBuffer && wLen > 0) { // Beschreibung übergeben ResString resHelp (ResID (IDS_HELPINFO_REGOPERAT, pRF), 128); ULONG ulLen = min (size_t(wLen-1), strlen(resHelp)); strncpy (pBuffer, resHelp, ulLen); pBuffer[ulLen] = '\0'; } } catch (...) { return E_FAIL; } // HelpFileInfo übergeben if (pHelpFile) pHelpFile[0] = '\0'; if (pulHelpCtx) *pulHelpCtx = 0L; return S_OK; }
/////////////////////////////////////////////////////////////////////////////////////////////// // Konstruktor wird durch AddAction "TRiASEx.RegardingOperations.1" gerufen CRegOperatPropAct::CRegOperatPropAct (void) { // ggf. Erweiterung ObjOper.ext laden m_hDex = NULL; if (NULL == g_pTE) { LOADEXTENSIONEX le; memset (&le, 0, sizeof (LOADEXTENSIONEX)); le.m_pDesc = 0; le.m_pName = "TRiAS.Operationen.1"; le.m_iMode = LEFullLoad; le.m_fGlobal = TRUE; m_hDex = DEX_ExternalLoadExtensionEx (le); _ASSERTE(m_hDex != 0); } // Member initialisieren m_pRegOperDlg = NULL; m_bIsDirty = false; // Dialogparameter wurden (noch) nicht verändert m_bIsInitialized = false; // Page ist noch nicht initialisiert m_bHasInitData = false; // (noch) keine Initialisierungsdaten für den Dialog von Load() // bereitgestellt bzw. schon an diesen weitergereicht COM_TRY { ResString resPropInfo (ResID (IDS_REGADCAPT, pRF), 30); m_sDesc = resPropInfo; } COM_CATCH_NORETURN; }
/////////////////////////////////////////////////////////////////////////////////////////////// // EventHandler // Call-Back-Funktion für die Initialisierung der Controls void COptionsDlg::WindowInit (Event) { // explizite Initialisierung der Controls m_CBoxFeature.FInit(); m_CBoxDelete.FInit(); m_CBoxMark.FInit(); m_CBoxShowNew.FInit(); m_CBoxShowOrig.FInit(); m_Descript.FInit(); m_OR.bFeat ? m_CBoxFeature.SetChecked (true) : m_CBoxFeature.SetChecked (false); m_OR.bDelete ? m_CBoxDelete.SetChecked (true) : m_CBoxDelete.SetChecked (false); m_OR.bMark ? m_CBoxMark.SetChecked (true) : m_CBoxMark.SetChecked (false); if (m_OR.bDelete) _ASSERTE (m_OR.bMark == false); if (m_OR.bMark) _ASSERTE (m_OR.bDelete == false); m_OR.bShowNew ? m_CBoxShowNew.SetChecked (true) : m_CBoxShowNew.SetChecked (false); m_OR.bShowOrig ? m_CBoxShowOrig.SetChecked (true) : m_CBoxShowOrig.SetChecked (false); m_Descript.SetText (ResString (ResID (IDS_KOMM21, pRF), 250).Addr()); AdjustSheetWizardBttns (this, m_dwFlags); } // WindowInit
// -------------------------------------------------------------------------------------------- // wird gerufen, wenn diese Page aktiviert werden soll (i. a. dann, wenn in der vorangehenden // Page der Button "Weiter" bzw. in der nachfolgenden Page der Button "Zurück" gedrückt wurde) BOOL COptionsDlg::OnSetActive (NotifyEvt e) { m_Descript.SetText (ResString (ResID (IDS_KOMM21, pRF), 250).Addr()); AdjustSheetWizardBttns (this, m_dwFlags); return FALSE; // bei Gültigkeit "FALSE" sonst "TRUE" (???) }
// durch den optionalen Parameter PSH_NOAPPLYNOW wird der ApplyButton ganz einfach übergangen CDesignDlg::CDesignDlg (Point FixPt) : CEditObjectSheet (ResString(ResID(IDS_DESIGNCAP,pRF),70), g_pTE->MVWind(), PSH_NOAPPLYNOW), m_OK (this, IDOK)/*, m_Cancel (this, IDCANCEL)*/ { m_FixPt = FixPt; }
// -------------------------------------------------------------------------------------------- // Ermittlung der Cursorposition bei 2 Geraden HRESULT CRestrictLine::CursorToStraightStraight (LPARAM lParam, Point EPt11, Point EPt21, Point EPt12, Point EPt22, POINT* pPTCur) { Point SectPt; SectScreen ssRet = StraightStraightIntersection (EPt11, EPt21, EPt12, EPt22, SectPt); if (INSECT == ssRet) { *pPTCur = (POINT&)SectPt; return S_OK; } ResString rsCapt (ResID (IDS_LONGCLASSNAME, pRF), 50); if (OUTSECT == ssRet) { ResString rsText (ResID (IDS_OUTSECTPOINT, pRF), 200); if (IDYES == MessageBox (__hWndM, rsText.Addr(), rsCapt.Addr(), MB_ICONQUESTION | MB_YESNO)) { ExpandingSreenSection (SectPt); pPTCur->x = 0; // an dieser Stelle könnte mehr Aufwand getrieben werden, damit die NEUE Position pPTCur->y = 0; // von SectPt nach der Vergrößerung des Sichtausschnittes ermittelt wird !!!!!!! return S_OK; } return S_FALSE; // IDNO } if (INFISECT == ssRet) // beide Geraden sind deckungsgleich return CursorTo1RestrictLine (lParam, pPTCur); if (NOSECT == ssRet) { ResString rsText (ResID (IDS_NOSECTPOINT, pRF), 250); MessageBox (__hWndM, rsText.Addr(), rsCapt.Addr(), MB_ICONEXCLAMATION | MB_OK); pPTCur->x = -1; pPTCur->y = -1; return S_FALSE; } DEX_Error (RC_RestrictLine, EC_NOINTERSECTION); return E_FAIL; } // CursorToStraightStraight
/////////////////////////////////////////////////////////////////////////////////////////////// // EventHandler // Call-Back-Funktion für die Initialisierung der Controls void CTopoRelRefDlg::WindowInit (Event) { ResourceFile RF (g_pDLLName); // explizite Initialisierung der Controls m_RBttnAllRefs.FInit(); m_RBttnSomeRefs.FInit(); m_RefTypeList.FInit(); m_SpinCount.FInit(); m_Descript.FInit(); // Controls setzen FillComboBox(); switch (m_iReferenceType) { case All: m_RBttnAllRefs.SetState (true); m_SpinCount.Disable(); m_Descript.SetText (ResString (ResID (IDS_COMMALL, &RF), 250).Addr()); break; case Least: m_RBttnSomeRefs.SetState (true); m_SpinCount.Enable(); m_Descript.SetText (ResString (ResID (IDS_COMMLEAST, &RF), 250).Addr()); break; case Most: m_RBttnSomeRefs.SetState (true); m_SpinCount.Enable(); m_Descript.SetText (ResString (ResID (IDS_COMMMOST, &RF), 250).Addr()); break; case Exact: m_RBttnSomeRefs.SetState (true); m_SpinCount.Enable(); m_Descript.SetText (ResString (ResID (IDS_COMMEXACT, &RF), 250).Addr()); } m_RefTypeList.ChangeCurrentIndex (m_iRefListIndex); m_RefTypeList.SetFocus(); m_SpinCount.SetValue(m_lLimitCnt); } // WindowInit
// -------------------------------------------------------------------------------------------- STDMETHODIMP CAreaBuildPropAct::EndAction (DWORD, IDataObject** ppDataOut) { _ASSERTE (m_ObjsIter != m_InObjs.end()); *ppDataOut = 0; COM_TRY { WEnumLONG wEnumInObj (*m_ObjsIter); // die zu bearbeitenden Objekte WEnumLONG wEnumOutObj; // Ergebnisobjekte der ausgewählten Operation // Optionen abfragen DWORD dwOptions = 0x00; if (m_wOperOptions.IsValid()) m_wOperOptions->GetOptions (&dwOptions); // im Dialog ausgewählte Operation ausführen THROW_FAILED_HRESULT (m_pAreaBuildDlg->ExecuteOperation (m_hPr, wEnumInObj, dwOptions, wEnumOutObj.ppi())); m_ObjsIter++; if (wEnumOutObj.IsValid()) { // IDataObject abfragen WDataObject IDO (CLSID_DataTransferObject); // Ergebnisobjekte im DataObjekt IDO speichern THROW_FAILED_HRESULT (SetEnumLONGData ((IEnum<LONG>*)(IEnumLONG*)wEnumOutObj, IDO)); // Resultat setzen *ppDataOut = IDO.detach(); if (0 == wEnumOutObj->Count()) { ResString resTitel (ResID (IDS_LONGCLASSNAME, pRF), 50); ResString resText (ResID (IDS_BOXTEXT7, pRF), 200); MessageBox (__hWndM, resText.Addr(), resTitel.Addr(), MB_ICONINFORMATION | MB_OK); } } } COM_CATCH_OP( delete m_pAreaBuildDlg; // bei Fehler Dialog wieder freigeben );
// FehlerAusgabeRoutine ------------------------------------------------------- int __cdecl esyntx (int errcode, int routine, ...) { va_list pList; ERROR_PARAMETER *pErrPar; va_start (pList, routine); pErrPar = va_arg (pList, ERROR_PARAMETER *); va_end (pList); ResourceFile RF (g_pDLLName); ResString resErrorCap (ResID (IDS_PARSERERRORCAP, &RF), 64); ResString resError (ResID (IDS_PARSERERROR, &RF), 256); char cbBuffer[_MAX_PATH]; wsprintf (cbBuffer, resError, pErrPar -> pFile, pErrPar -> iLineNumber, pErrPar -> pString); MessBox mb (resErrorCap, cbBuffer, g_pTE -> MWind()); mb.Show(); return errcode; }
// unique Ident lesen/erzeugen // KK990927 //Bool Header :: GetUniqueIdent (ulong &MK) Bool Header :: GetUniqueIdent (ulong &MK,ulong ID) { // KK 990927 - Blödsinn KK000608 /*----- #if _MSC_VER >= 1100 if ((MK == 0) || (MK == -1)) { if ( 0 == ID) HPROJECT hPr = DEX_GetDataSourceHandle(); else HPROJECT hPr = DEX_GetObjectsProject(ID); MK = DEX_GetUniqueIdentMCodeEx (hPr); } // KK000608 ----------------------------------- long lMKode = MK; MK = DEX_MapMCodeToHandle(hPr,lMKode); // -------------------------------------------- #else if ((MK == 0) || (MK == -1)) { MK = DEX_GetUniqueIdentMCode (); } #endif -------------------------------------------------------------*/ if ( 0L == ID) return True; if ((MK == 0) || (MK == -1)) { ResString Text (ResID (IDS_UNIQUEIDENT), 30); MK = UniqueIdent; #if _MSC_VER >= 1100 HPROJECT hPr = DEX_GetObjectsProject(ID); // KK000608 ----------------------------------- long lMKode = MK; MK = DEX_MapMCodeToHandle(hPr,lMKode); // -------------------------------------------- #endif if (_GetMerkmalsKode (MK, (char *) Text.Addr ()) && // (CreateMerkmal (MK, (pchar) Text.Addr () , UnIDLen) == EC_OKAY)) (CreateMerkmal (MK, (pchar) Text.Addr () , UnIDLen, ID) == EC_OKAY)) return True; else return False; } else return True; }
// -------------------------------------------------------------------------------------------- // Editierfeld erhält den Focus void CTopoRelRefDlg :: EditFocusChg (EditFocusChgEvt e) { if (!e.gotFocus()) return; // Focus wurde entfernt if (IDC_LIMITCOUNT == (uint) e.GetControlID()) { ResourceFile RF (g_pDLLName); m_Descript.SetText (ResString (ResID (IDS_COMMLIMITCOUNT, &RF), 250).Addr()); } } // EditFocusChg
// -------------------------------------------------------------------------------------------- // Text in der Statuszeile entsprechend der CursorForm modifizieren void CGeoEditExtension::StatuszeileModifizieren (CursForm CF) { ResString rsText (ResID (IDS_CURVERTEXMOVE, pRF), 100); // case CURSFORM_STERN switch (CF) { case CURSFORM_CROSS: rsText = ResString (ResID (IDS_CUREDIT, pRF), 100); break; case CURSFORM_TRENNER: rsText = ResString (ResID (IDS_CURVERTEXADD, pRF), 100); break; case CURSFORM_KREUZ: rsText = ResString (ResID (IDS_CURVERTEXDEL, pRF), 100); break; case CURSFORM_INOBJEKT: rsText = ResString (ResID (IDS_CUROBJECTMOVE, pRF), 100); break; case CURSFORM_FANGEN: rsText = ResString (ResID (IDS_INMARKER, pRF), 100); break; } DEX_SetMessageStringNoKickIdle (rsText.Addr()); } // StatuszeileModifizieren
/////////////////////////////////////////////////////////////////////////////////////////////// // IPropertyAction methods // PropertyPages einhängen // diese Stelle wird bei DoActions() erreicht STDMETHODIMP CRegOperatPropAct::AddConfigPages (LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam, LPCSTR pcDesc, UINT *puiCnt) { char cbCaption[_MAX_PATH]; try { if (NULL != pcDesc) // Caption ist gegeben strcpy (cbCaption, pcDesc); else // von zugehöriger ClassProperty unseren Namen besorgen GetPropInfo (cbCaption, sizeof(cbCaption), NULL); // zugehörigen ConfigDialog (PropertyPage(s)) anlegen DELETE_OBJ (m_pRegOperDlg); // evtl. vorherigen freigeben m_pRegOperDlg = CRegardOperatDlg::CreateInstance (ResID(IDD_REGOPERATPROPACT, pRF), cbCaption, this, m_caSelInfo, *pRF); if (NULL == m_pRegOperDlg) _com_issue_error (E_OUTOFMEMORY); if (!IsNoShow()) { // Seite hinzufügen, wenn selbige angezeigt werden soll HPROPSHEETPAGE hPSP = m_pRegOperDlg -> CreatePage(); if (NULL == hPSP) return E_HANDLE; if (!(*lpfnAddPage) (hPSP, lParam)) return E_UNEXPECTED; } // Initialisierungsdaten für den Dialog wurden von Load() bereitgestellt, konnten aber // noch nicht an diesen weitergereicht werden if (m_bHasInitData) { // Initialisierungsdaten jetzt an den Dialog weiterreichen HRESULT hr = m_pRegOperDlg->SetSelectedInfo (&m_caSelInfo, IsNoShow()); if (FAILED(hr)) _com_issue_error(hr); } if (NULL != puiCnt) *puiCnt = IsNoShow() ? 0 : 1; // "1" ist die Anzahl der einzuhängenden Pages } catch (_com_error& e) { DELETE_OBJ (m_pRegOperDlg); if (puiCnt) *puiCnt = 0; return _COM_ERROR (e); } return S_OK; } // AddConfigPages
// -------------------------------------------------------------------------------------------- // Call-Back-Funktion für die Initialisierung der Controls void CEditCoordDlg::WindowInit (Event) { // explizite Initialisierung der Controls m_X.FInit(); m_Y.FInit(); m_DeleteButton.FInit(); m_DeleteText.FInit(); // OwnerDraw-Knopf initialisieren if (m_DeleteButton.LoadBitmaps (ResID(IDB_DELE, pRF), ResID(IDB_DELE_SEL, pRF), ResID(IDB_DELE_FOCUS, pRF), ResID(IDB_DELE_DISABLED, pRF))) m_DeleteButton.SizeToContent(); m_pED = (CEditDlg*) GetPropertySheet(); // Zugriff auf editiertes Objekt, das in der Sheet gehalten wird m_wObj = m_pED->GetObject(); m_lComONr = m_pED->GetComONr(); ControlsSetting(); }
// -------------------------------------------------------------------------------------------- // Reaktion bei Click auf einen Button void CTopoRelRefDlg::ButtonClick (ControlEvt e) { ResourceFile RF (g_pDLLName); switch ((uint) e.GetControlID()) { case IDR_ALLREFOBJECTS: // nachfolgende if-Anweisung ist erforderlich, weil irgendwoher ein unerklärlicher // ButtoClick auf den m_RBttnAllRefs-Button kommt (#WM030131) if (m_RBttnAllRefs.GetState()) { m_SpinCount.Disable(); m_Descript.SetText (ResString (ResID (IDS_COMMALL, &RF), 250).Addr()); } break; case IDR_SOMEREFOBJECTS: m_SpinCount.Enable(); m_RefTypeList.SetFocus(); m_Descript.SetText (ResString (ResID (IDS_COMMSOME, &RF), 250).Addr()); } } // ButtonClick
// -------------------------------------------------------------------------------------------- // Reaktion bei Click in die ComboBox void CTopoRelRefDlg :: ListBoxSel (ControlEvt) { m_RBttnAllRefs.SetState (false); m_RBttnSomeRefs.SetState (true); m_SpinCount.Enable(); ResourceFile RF (g_pDLLName); switch (m_RefTypeList.GetCurrentIndex()) { case 0: m_Descript.SetText (ResString (ResID (IDS_COMMLEAST, &RF), 250).Addr()); break; case 1: m_Descript.SetText (ResString (ResID (IDS_COMMMOST, &RF), 250).Addr()); break; case 2: m_Descript.SetText (ResString (ResID (IDS_COMMEXACT, &RF), 250).Addr()); } }
// -------------------------------------------------------------------------------------------- // Toolbar für die Bildung von Konstruktionshilfslinien aus TRiAS entfernen HRESULT CGeoEditExtension::RemoveDesignToolbar (void) { try { WTRiASBarContainer BarCont (m_pXtnSite); ResString strCap (ResID (IDS_DESIGNTOOLCAPTION, &RF()), 128); // ToolBar beseitigen return BarCont -> DeleteTRiASBar (strCap); } catch (_com_error &hr) { return _COM_ERROR(hr); } }
CTextSearchEngine::CTextSearchEngine (void) { m_pCfgDlg = NULL; m_fIsDirty = false; m_fIsInitialized = false; try { ResourceFile RF (g_pDLLName); ResString resPropInfo (ResID (IDS_TEXTSEARCHENGINE_DESC, &RF), 64); m_strDesc = resPropInfo; } catch (...) { TX_ASSERT(false); } }
///////////////////////////////////////////////////////////////////////////// // IPropertyAction methods STDMETHODIMP CTextSearchEngine::AddConfigPages (LPFNADDPROPSHEETPAGE lpfnAddPage, LPARAM lParam, LPCSTR pcDesc, UINT *puiCnt) { char cbCaption[128]; try { if (NULL != pcDesc) // Caption ist gegeben strcpy (cbCaption, pcDesc); else // von zugehöriger ClassProperty unseren Namen besorgen GetPropInfo (cbCaption, sizeof(cbCaption), NULL); // Kontext des Dialoges feststellen WClassProperty Cls; bool fChoice = false; if (SUCCEEDED(GetSite (IID_IClassProperty, Cls.ppv()))) { // Kontext ist entweder PropertyChoice oder PropertySequence DWORD dwFlags = 0; if (SUCCEEDED(Cls -> GetPropInfo (NULL, 0, &dwFlags))) fChoice = (dwFlags & PROPCAPS_CONTAINER_IS_CHOICE) ? true : false; } // zugehörigen ConfigDialog (PropertyPage(s)) anlegen ResourceFile RF (g_pDLLName); UINT uiRes = fChoice ? IDD_TEXTSEARCHENGINE_CFGPP : IDD_TEXTSEARCHENGINE_CFG; DELETE_OBJ(m_pCfgDlg); // evtl. vorherigen freigeben m_pCfgDlg = CCfgTextSearch::CreateInstance (this, ResID (uiRes, &RF), cbCaption); if (NULL == m_pCfgDlg) _com_issue_error(E_OUTOFMEMORY); HPROPSHEETPAGE hPSP = this -> CreatePage(m_pCfgDlg); if (NULL == hPSP || !lpfnAddPage(hPSP, lParam)) _com_issue_error(E_UNEXPECTED); if (puiCnt) *puiCnt = 1; m_pCfgDlg -> InitWithData (m_Status); } catch (_com_error& hr_result) { DELETE_OBJ (m_pCfgDlg); if (puiCnt) *puiCnt = 0; return _COM_ERROR(hr_result); } return S_OK; }
Bool Header :: MatrixExists (void) { ResString HVar (ResID (IDS_KOEFF11), 20); #if _MSC_VER >= 1100 HPROJECT hPr = DEX_GetDataSourceHandle(); HeaderEntryX HD (HVar,hPr); #else HeaderEntryX HD (HVar); #endif if (HD.Status () != HE_INVALID) return True; else return False; }
CGenerateObjectPropertiesSelectDlg* CGenerateObjectPropertiesSelectDlg::CreateInstance ( CGenerateObjectProperties *pParent, LPCSTR pcCaption) { CGenerateObjectPropertiesSelectDlg *pCfgDlg = NULL; COM_TRY { // Dialog erzeugen ResourceFile RF (g_pDLLName); pCfgDlg = new CGenerateObjectPropertiesSelectDlg(pParent, ResID(IDD, &RF), pcCaption); if (NULL == pCfgDlg || !pCfgDlg -> FInit()) { DELETE_OBJ(pCfgDlg); return NULL; } } COM_CATCH_OP_RETURN(delete pCfgDlg, NULL); return pCfgDlg; }
Bool Header::SetTextFlag (void) { ResString Text (ResID (IDS_POSTEXTATBASELINE, &g_pTE -> RF()), 30); #if _MSC_VER >= 1100 HPROJECT hPr = DEX_GetDataSourceHandle(); HeaderEntryX PosTxt (Text,hPr); #else HeaderEntryX PosTxt (Text); #endif if (PosTxt.Status () != HE_INVALID) return True; PosTxt.SetEntryText ("1"); if (PosTxt.WriteBack() != EC_OKAY) return false; return true; }