Erstellung der Controls auf einem Dialog - Wie?



  • Hi Leute,
    Ich muss wissen, wie die Controls, die auf einem Dialog liegen, erstellt werden.
    Also z.b., wenn ein Button auf einem Dialog liegt. Ich weiss diesem Button per Klassenassistenten ne Variable zu. Ersetz dann CButton durch CMyButton. Tja, jetzt muss ich zur korrekten Erstellung meines Buttons wissen, welche Funktion aufgerufen wird. Create ist es nicht 😕
    Danke!

    EDIT:
    Hab mal PreTranslateMessage zu meiner Klasse hinzugefügt. Hab mir mal alle Werte der Messages (pMsg-message) per TRACE ausgeben lassen. Nachdem der Button angezeigt wird, wurden 6 Nachrichten an PreTranslateMessage geschickt:
    5 Mal eine Nachricht mit dem Wert 8448 und danach WM_PAINT. Weiss jemand, was die ersten 5 Nachrichten sind? Hab nirgendwo eine Nachricht mit dem Wert finden können 😞



  • CWnd::Attach vielleicht?



  • Hab Attach in meiner Klasse überschrieben. Wird leider nciht aufgerufen 😞



  • gerade nachgeguckt, es wird CWnd::SubclassWindow aufgerufen. Du könntest z.B. CWnd::PreSubclassWindow überschreiben.



  • Danke!
    Wie hast du nachgeguckt?



  • bezüglich deiner ersten frage mit den 5 nachrichten und dann wm_paint

    WndProc: hwnd=0x120180, msg = WM_SHOWWINDOW (0x0001, 0x00000000)
    WndProc: hwnd=0x120180, msg = WM_WINDOWPOSCHANGING (0x0000, 0x0012FBF8)
    WndProc: hwnd=0x120180, msg = WM_NCPAINT (0x0001, 0x00000000)
    WndProc: hwnd=0x120180, msg = WM_GETTEXT (0x01FE, 0x0012EFF8)
    WndProc: hwnd=0x120180, msg = WM_ERASEBKGND (0x1010054, 0x00000000)
    WndProc: hwnd=0x120180, msg = WM_WINDOWPOSCHANGED (0x0000, 0x0012FBF8)
    WndProc: hwnd=0x120180, msg = WM_PAINT (0x0000, 0x00000000)

    vc6->extras->mfc-ablaufverfolgung->f5->infos stehen im ausgabefenster



  • dEUs schrieb:

    Danke!
    Wie hast du nachgeguckt?

    DDX_Control Funktion in DoDataExchange.



  • Sovok schrieb:

    bezüglich deiner ersten frage mit den 5 nachrichten und dann wm_paint

    WndProc: hwnd=0x120180, msg = WM_SHOWWINDOW (0x0001, 0x00000000)
    WndProc: hwnd=0x120180, msg = WM_WINDOWPOSCHANGING (0x0000, 0x0012FBF8)
    WndProc: hwnd=0x120180, msg = WM_NCPAINT (0x0001, 0x00000000)
    WndProc: hwnd=0x120180, msg = WM_GETTEXT (0x01FE, 0x0012EFF8)
    WndProc: hwnd=0x120180, msg = WM_ERASEBKGND (0x1010054, 0x00000000)
    WndProc: hwnd=0x120180, msg = WM_WINDOWPOSCHANGED (0x0000, 0x0012FBF8)
    WndProc: hwnd=0x120180, msg = WM_PAINT (0x0000, 0x00000000)

    vc6->extras->mfc-ablaufverfolgung->f5->infos stehen im ausgabefenster

    Wie gesagt, die ersten 5 Nachrichten sind die gleichen ...


Anmelden zum Antworten