Ich sitze vielleicht zu lange am Computer, oder es ist die Hitze, aber wie bringe ich eine Hex-Zahl und eine Dezimal-Zahl in Einklang?
In einer registrierten Win-Msg (GUIRegisterMsg) soll eine Aktion ausgelöst werden, wenn $WParam 0x00000021 ist, das entspricht dezimal 33. Als Pseudo-Code:
If IrgendeineKonverterFunktion($WParam) = 33 Then TuWas
Welche Funktion könnte das denn sein, die aus 0x00000021 die 33 machen? (Wichtig ist auch, dass WParam in der 0x... Form vorliegt, sonst wärs ja einfach!) ![]()
Das Beste was ich gefunden habe sind die Funktionen _WinAPI_LongMid, _WinAPI_HiWord und _WinAPI_LoWord. Bei den beiden letzten gibts jeweils die Hälfte des Hex-Wertes. Wenn man den ganzen Hex-Wert haben will, müsste man die beiden addieren. - Ein wenig umständlich. ... Mit _WinAPI_LongMid($WParam, 0, 31) würde es gehen, aber ich bin mir nicht sicher, ob diese Funktion dafür gedacht ist.
Soll ich _WinAPI_LongMid() dafür benutzen, oder gibt es eine Funktion, die besser geeignet ist, um aus 0x00000021 die 33 zu machen?
Zusatzfrage: Es ist eine API-Timer-Proc, in der WParam ausgewertet werden soll. WParam gibt dabei eine Timer-ID aus. Wäre es dafür ausreichend, nur das Lo-Word zu prüfen, oder gibt es Werte, die auch ins Hi-Word schreiben? (Vielleicht würde hierfür _WinAPI_LoWord genügen!?)