profiler zeigt massenhaft CWnd::OnWndMsg und CWnd::OnWndMsg



  • Hallo zusammen!
    Ich habe hier ein GUI-Programm (MS Visual C++ 6.0), das in einer Schleife läuft. Diese Schleife will ich optimieren. Das Programm ändert ein paar sichtbare Sachen an seinem Erscheinungsbild: zum Beispiel flackert eine Status-Anzeige (ein Rechteck) zwischen Grün und Rot hin und her, und ich frage mich, ob mich das viel Zeit kosten kann. Im Profiler finde ich

    28.496 0.5 1240.161 22.1 55546 CWnd::OnWndMsg(unsigned int,unsigned int,long,long 😉 (mfc42.dll)
    7.531 0.1 1252.848 22.3 55546 CWnd::WindowProc(unsigned int,unsigned int,long) (mfc42.dll)

    Weil beide Funktionen 55546 mal aufgerufen werden und OnWndMsg ein bisschen kürzer braucht als WindowProc, nehme ich an, dass WindowProc OnWindMsg aufruft. Aber warum? Wer ruft WindowProc auf? Muss ich mir darum überhaupt Sorgen machen, oder kann ich diese Routinen sowieso nicht umgehen? Was machen die denn? Aus dem MSDN bin ich nicht schlau geworden.
    Kann ich generell mit anderen profiler-Optionen rausfinden, welche Routinen welche aufrufen?

    Schöne Grüße,
    Rufus



  • Also in der MSDN steht eigentlich alles.
    Über OnWndMsg:

    This member function is called by WindowProc, or is called during message reflection.

    OnWndMsg determines the message type and either calls the appropriate framework function (for example, OnCommand for WM_COMMAND) or finds the appropriate message in the message map.

    Wenn du ein flackerndes Bild hast, dann gibt es entsprechend viele Aufrufe.


Anmelden zum Antworten