Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

LPARAM nur bei Zeigern? 64Bit

  Alt 31. Aug 2018, 20:25
Zitat:
Wenn Sie Zeiger an SendMessage/PostMessage/TControl.Perform übergeben, sollten die Parameter wParam und lParam in den Typ WPARAM/LPARAM und nicht in Integer/Longint umgewandelt werden.
Richtig:
SendMessage(hWnd, WM_SETTEXT, 0, LPARAM(@MyCharArray));

Falsch:
SendMessage(hWnd, WM_SETTEXT, 0, Integer(@MyCharArray));
Ok. .Das sollte klar sein..
Aber wie verhält es sich bei dieser Konstellation.

SendMessage(WinHandle, WM_COMMAND, MAKELONG(Word(MenuWahl), 0), 0);

MAKELONG ist ja eigentlich kein NativeUint..
WPARAM voran setzen oder ignorieren es funktioniert auch mit Integer.

Bin mir da jetzt nicht so sicher da es nicht erwähnt wird.
Die Infos sind alle etwas Halbfertig.

gruss

Geändert von EWeiss (31. Aug 2018 um 20:38 Uhr)
  Mit Zitat antworten Zitat