Announcement

Collapse
No announcement yet.

Nachricht abfangen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Nachricht abfangen

    erstellt 25.02.2003 12:35
    --------------------------------------------------------------------------------
    hallo,
    jetzt hab ich noch ne frage (nerv):

    Ich hab ne Delphi-App geschrieben die ne Message broadcastet, die mit WM_SHIBBY := RegisterWindowMessage('shibby') registriert wurde und auch auf den empfang einer solchen reagiert (messagebox). Das funzt.

    Und ich hab ne MFC-App die ne Message broadcastet, die mit WM_SHIBBY = RegisterWindowMessage("shibby") registriert wurde. Die Delphi-App empfängt die auch. Funzt soweit sehr gut.

    Nur wie kann ich nun in meiner MFC App. die selbst erzeugte Nachricht abfangen, die meine Delphi-App versendet ?

    Ich habs bereits mit folgendem versucht, funzt aber net:

    BOOL CNachrichtenApp::ProcessMessageFilter(int code, LPMSG lpMsg)
    {
    // TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen
    MSG MyMsg = *lpMsg;
    if (MyMsg.message == WM_SHIBBY)
    {
    MessageBox(NULL, "Info", "Nachricht da", NULL);
    }
    return CWinApp::ProcessMessageFilter(code, lpMsg);
    }

    Vielleicht ein wenig Beispielcode oder so ?

    wäre nett.

  • #2
    Ich bin letzthin durch Zufall über "ON_REGISTERED_MESSAGE" gestolpert. Vielleicht hilft dir das? Google halt mal.
    <br>Ciao, Uli

    Comment


    • #3
      hi,
      das kann aber noch net alles sein. da muss noch was fehlen. ich hab in der MSDN noch folgendes gefunden, dass ich als prototyp in der Headerdatei eingetragen habe:

      für ON_MESSAGE( <message>, <memberFxn> )
      afx_msg LRESULT memberFxn(WPARAM, LPARAM);

      für ON_REGISTERED_MESSAGE( <nMessageVariable>, <memberFxn> )
      afx_msg LRESULT memberFxn(WPARAM, LPARAM);

      trotzdem mault der compiler noch. hat den keiner das schon mal selbst gemacht

      Comment


      • #4
        Selber benutzt hab ich's noch nicht, aber in meiner MSDN ist folgendes Beispiel:
        <pre class="sourcecode"><code>
        <b>const</b> UINT WM_TASKBARCREATED =
        ::RegisterWindowMessage(_T(<font color="#9933CC">&quot;TaskbarCreated&quot;</font>));
        <br>
        BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
        ON_REGISTERED_MESSAGE(WM_TASKBARCREATED, OnTaskBarCreated)
        END_MESSAGE_MAP(CMainFrame, CFrameWnd)
        <br>
        LRESULT CMainFrame::OnTaskBarCreated(WPARAM wp, LPARAM lp)
        {
        VERIFY(InstallIcons());
        <b>return</b> 0;
        }
        <br>
        <b>BOOL</b> CMainFrame::InstallIcons()
        {
        NOTIFYICONDATA nid;
        <font color="#003399"><i>//</i></font>
        <font color="#003399"><i>// stuff nid with args</i></font>
        <font color="#003399"><i>//</i></font>
        <b>return</b> Shell_NotifyIcon(NIM_ADD, &amp;nid);
        }
        </code></pre>
        HTH, Uli

        Comment


        • #5
          nochmals hi,

          ich hab das ganze jetzt mal neu geschrieben und die 3 einträge gemacht

          afx_msg LRESULT MyFunc( WPARAM, LPARAM);
          ON_REGISTERED_MESSAGE( WM_SHIBBY, MyFunc)
          LRESULT CNachrichtenDlg::MyFunc( WPARAM, LPARAM); //incl. def. natürlich.

          jetzt geht das ganze.

          vielen dank für eure mühen. ihr habt mir sehr geholfen

          Comment


          • #6
            <i>vielen dank für eure mühen. ihr habt mir sehr geholfen.</i><br>
            Bitte schön. Du darfst mich übrigens auch gerne mit "Du" anreden.<br>Uli

            Comment

            Working...
            X