Einzelnen Beitrag anzeigen

samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#5

AW: WM_COMMAND wird nicht ausgelöst

  Alt 10. Jun 2019, 10:56
Wir leben in verschiedenen Welten. Deshalb kann ich nur begrenzt begreifen, was Du vorhast. In meiner Welt (32-Bit-Windows) ist der WRARAM einer WM_LBUTTONDOWN-Message ein 32-Bit-Integer. Und in LPARAM befinden sich die Koordinaten und kein Handle.

IDC_ABOUT ist eine vorzeichenbehaftete Zahl. Wenn Du IDC_ABOUT an MakeLong übergibst, dann wird IDC_ABOUT als vorzeichenlose Zahl interpretiert(WORD). Logisch, dass dann bei dem Empfänger auch eine vorzeichenlose Zahl ankommt.Es bleibt dem Empfänger überlassen die Zahl zu interpretieren.

Der Empfänger muss nun aus der vorzeichenlosen Zahl wieder eine vorzeichenbehaftete Zahl machen. Übersetzt heißt SmallInt(wP): Nimm die unteren 16 Bit und interpretiere das als vorzeichenbehaftete Zahl. Die Übersetzung von LoWord(wP) heißt aber: Nimm die unteren 16 Bit und interpretiere das als vorzeichenlose Zahl. Je nachdem ob es als vorzeichenbehaftete Zahl oder als vorzeichenlose Zahl interpretiert wird, werden Dir halt auch andere Werte angezeigt.

Geändert von samso (10. Jun 2019 um 11:47 Uhr) Grund: Präziser formuliert
  Mit Zitat antworten Zitat