Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Postmessage ?

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
20.08.2002, 06:27 Uhr
~glutlicht
Gast


Hallo !

Ich habe eine eigene Klasse von CButton abgeleitet. Ich lasse auf die Nachricht WM_LBUTTONUP reagieren. Das sieht so aus

Code:

C++:
void CMyButtonClass::OnLButtonUp(UINT nFlags, CPoint point)
{
    
             //Mein Code
             //...
             //...
             //...

    CButton::OnLButtonUp(nFlags, point);
}


Nun, wenn ich die letzte Zeile der Funktion lösche (CButton::OnLButtonUp(nFlags, point), dann wird an mein Programm keine BN_CLICKED Nachricht mehr gesandt.
Wie kann ich diese Nachricht denn manuell senden ? Folgendes funktioniert nicht:


C++:
void CMyButtonClass::OnLButtonUp(UINT nFlags, CPoint point)
{
    
             //Mein Code
             //...
             //...
             //...

    PostMessage(BN_CLICKED);
}


Wieso get das nicht? Und wie geht es dann ?

Danke im vorraus !
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.08.2002, 09:56 Uhr
~newbie
Gast


Hi!
Ich glaub es könnte so funktionieren: PostMessage kommt in die Windows Nachrichtenschleife. Ich gluab mit SendMessage könnte man dieses Problem lösen.

cu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.08.2002, 16:03 Uhr
~glutlicht
Gast


hmm, sendmessage funktioniert leider auch nicht....

trotzdem danke !
gruß !
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.08.2002, 16:16 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo glutlicht,
ich verstehe zwar den Sinn und Zweck der Übung nicht, aber wohin soll denn eine Nachricht gesendet werden?
Wenn dann brauchst du doch eine Adresse wo die Nachricht ankommen soll. Ich weiß jetzt nicht ob das in Deinem speziellen Fall funktioniert, aber IMHO müßte die ganze Sache etwa so aussehen:

C++:
PostMessage(WM_COMMAND,
    MAKEWPARAM(IDC_BUTTON1, BN_CLICKED),
    (LPARAM) ((CButton *) GetDlgItem(IDC_BUTTON1))->GetSafeHwnd());


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.08.2002, 16:47 Uhr
~glutlicht
Gast


uff.... ich dachte das die nachricht immer an alles geschickt wird, und der der sie verarbeiten will sie annimmt.

nunja, mal wieder was dazugelernt...
danke !
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
20.08.2002, 17:35 Uhr
~glutlicht
Gast


also.... in meinem speziellen fall funktioniert das leider nicht.

PostMessage soll in der OnKeyUp-Funktion meiner Klasse aufgerufen werden, und an das ParentWindow die Nachricht senden das darauf geklickt wurde.

Also hab ich schonmal aus
Code:
MAKEWPARAM(IDC_BUTTON1, BN_CLICKED)
, so wie in dem Code beschrieben, ein
Code:
MAKEWPARAM(this->GetDlgCtrlID(), BN_CLICKED)
gemacht.
Geht das?

So, nun hab ich aber immer noch nicht angegeben wohin die Nachricht gehen soll, nämlich ans ParentWindow. Wo geb ich das an?

Oder geht da einfach sowas:
C++:
AfxGetMainWnd()->PostMessage(WM_COMMAND,
    MAKEWPARAM(this->GetDlgCtrlID(), BN_CLICKED),
    (LPARAM) ((CButton *) GetDlgItem(IDC_BUTTON1))->GetSafeHwnd());


ja, den Geistesblitz könnt ich gleich mal testen...

Jippie !! es funktioniert
Schön, wenn man alles nochmal schön schriftlich ausformuliert, kommt man drauf ! hehe

danke nochmal... Gruß !
glutlicht
 
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: