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!?)