Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Methode des aufrufenden Obj aus einer externen Fkt. aufrufen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
09.06.2005, 14:52 Uhr
Wiesenlieger



Hi,
ich hab folgendes Problem:
In meinem Progi (ein Zeichenprogramm) will ich mit einem Klick der rechten Maustaste, je nach gerade aktiver Funktion, verschiedene Aktionen auslösen.
- Zeichnen eines Kreises abbrechen und Kreis aus einem Array, wo sie alle "aufbewahrt" werden löschen
- oder jede andere Fkt. (löschen, verschieben...) abbrechen
- oder die letzte genutzte Fkt. aufrufen
...

Um den Code des Progis nicht zu sprengen, hab ich angefangen einige Fkt. in eine DLL auszulagern. Funktioniert an sich gut, nur muß ich bei oben beschriebener wieder die letzte Aktion aufrufen (Kreis zeichnen, löschen,...). Also eine Fkt. des aufrufenden Objekts. Wie kann ich das lösen.

Noch etwas Code:
die Fkt. in der DLL

C++:
/////////////////////////////////////////////////////////////////////////////
// Letzte Funktion aufrufen, oder abbrechen
extern "C" void PASCAL EXPORT DORecallMouseFkt(int *action, int *lastAction, CObArray *array)
{
    // gerade beim zeichnen eines ROI
    // -> rechter Mousebutton == Abbruch und löschen des erstellten ROI
    if (*action == DRAW_RADIUS_ROI)
        array->EraseObAt(array->GetSize() - 1);

    else if (*action == NOTHING) //letzte Aktion wiederholen
    {
        switch ( lastAction )
        {
        case SET_NEW_ROI: break;// hier wären die Fkt. aufzurufen
        case MOVE_OBJECT: break;
        case ERASE_OBJECT: break;
        case SELECT_OBJERCT: break;
        }
    }
    
    // definitiver Abbruch jeder Fkt.
    *action = NOTHING;
}



z.B. eine aufzurufende Fkt:

C++:
void CSynCamDoc::OnButtonSelect()
{
    m_iMouseAction = SELECT_OBJECT;    
} // der Rest passiert dann beim Klicken der linken Maustaste



Kann ich eine Windowsnachricht rausschicken? Die aufzurufenden Methoden sind immer Reaktionen auf Buttons oder Menüeinträge.
Oder gibts elegantere Möglichkeiten?

Danke für Eure Hilfe im Voraus.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: