tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
537
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    chriss_2oo4 chriss_2oo4 ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Beiträge
    194
    Hi,

    meine Anwendung liest Daten aus und erstellt während der Laufzeit die benötigten Komponenten.
    Für jeden erfassten Datensatz werden eine bestimmte Kombination von Elementen erstellt (Button, ComboBox, Label)
    Diese Komponenten habe ich in einer Klasse, die von CWnd abgeleitet ist, zusammengefasst.

    Den Komponenten muss eine ID zugewiesen werden, was ja dynamisch geschehen muss. Des Weiteren muss jerder erstellte
    Button beim Eventhandler registiert werden, aber wie mache ich das?

    Sollte für jede Art von Komponente eine eigene fortlaufende Nummer erstellt werden oder lieber für alle Komponenten
    eine einzige fortlaufende ID

    Also Fall 1:
    ===================
    Button 1: ID 1100
    ComboBox 1: ID 1200
    Label1: ID 1300

    Button 2: ID 1101
    ComboBox 2: ID 1201
    Label2: ID 1301


    oder Fall 2:
    ===================
    Button 1: ID 1100
    ComboBox 1: ID 1102
    Label1: ID 1103

    Button 2: ID 1104
    ComboBox 2: ID 1105
    Label2: ID 1106



    Danke und LG

    Chriss
     

  2. #2
    Avatar von pschilling
    pschilling pschilling ist offline Mitglied Gold
    Registriert seit
    Apr 2007
    Ort
    Duisburg (NRW)
    Beiträge
    192
    Hi Chriss,

    ich habe deine Aufgabenstellung damals so umgesetzt:

    1. Ich habe ID-Bereiche für die verschiedenen dynamisch generierten Controls definiert.

    also für Buttons z.B. 5000-5999
    und für Comboboxen 6000-6999
    u.s.w.

    Deine Applikation generiert nun dynamisch beliebig viele Buttons oder sonstige Controls.

    Für das Event-Handling dieser dynamisch generierten Controls habe ich folgendes gemacht:

    In der Überschreibung der virtuellen Methode PreTranslateMessage:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
        if( pMsg->message == WM_COMMAND ) {
            int ctrlID = LOWORD(pMsg->wParam) ;
                // In ctrlId steht der ID-Code des Controls, welches das Event ausgelöst hat!
            if( ctrlId >= 5000 && ctrlId y= 5999 ) {
                     doButtonEvent(ctrlId, HIWORD(wParam));
            }
            else if(ctrlId >= 5000 && ctrlId y= 5999 ) {
                     doComboboxEvent(ctrlId, HIWORD(wParam));
            }
        }

    Auf die Art und Weise habe ich eine beliebige Anzahl von Controls unter meiner Kontrolle.

    Noch Fragen Immer her damit

    Grüße,

    Pit
    Geändert von pschilling (10.11.08 um 00:50 Uhr)
     
    Der Computer wird das tun, was du programmierst - nicht das, was du willst ;-)

Ähnliche Themen

  1. C#: PreRender und Eventhandler bei dynamischen Buttons
    Von Ryandel im Forum .NET Web und Kommunikation
    Antworten: 7
    Letzter Beitrag: 19.10.10, 18:42
  2. Antworten: 0
    Letzter Beitrag: 21.06.07, 16:24
  3. sql id vergabe um + 1 höher
    Von Frodooo im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 06.03.07, 08:34
  4. AOL - IP-Vergabe
    Von Hattrix im Forum Internet, DSL & Flatrate
    Antworten: 19
    Letzter Beitrag: 22.01.07, 11:44
  5. PID vergabe / verwaltung
    Von kle-ben im Forum Coders Talk
    Antworten: 0
    Letzter Beitrag: 07.01.07, 18:31