Extraction/Concaténation de nombre sur 8/16/32 bits

 

Concaténation de 2 valeurs 16 bits en une valeur 32 bits:

de type LPARAM (Utilisé pour les messages avec SendMessage)

LPARAM MAKELPARAM(
WORD wLow, // Partie basse sur 16 bits
WORD wHigh // Partie haute sur 16 bits
);

Idem, mais de type LRESULT

LRESULT MAKELRESULT(
WORD wLow,
WORD wHigh
);

et enfin de type LONG:

DWORD MAKELONG(
WORD wLow,
WORD wHigh
);

 

Extraction de la partie basse ou haute d'une valeur 32 bits en valeur 16 bits

En fait, vous récuperez soit la partie haute sur 16 bits, soit la partie basse sur 16 bits de votre nombre sur 32 bits:

Pour la partie haute:

WORD HIWORD(
DWORD dwValue
);

Pour la partie basse:

WORD LOWORD(
DWORD dwValue
);

 

Concaténation de 2 valeurs 8 bits en une valeur 16 bits

de type WPARAM

WPARAM MAKEWPARAM(
WORD wLow,
WORD wHigh
);

de type WORD

WORD MAKEWORD(
BYTE bLow,
BYTE bHigh
);

 

Extraction de la partie basse ou haute d'une valeur 16 bits en valeur 8 bits

En fait, vous récuperez soit la partie haute sur 8 bits, soit la partie basse sur 8 bits de notre nombre sur 16 bits:

Pour la partie haute:

BYTE HIBYTE(
WORD wValue
);

 

Pour la partie basse:

BYTE LOBYTE(
WORD wValue
);

 

Convertir un identifiant de ressource en entie

cf. MAKEINTRESOURCE

Récupérer les coordonnées (x, y) concaténées en une valeur 32 bits

int GET_X_LPARAM(
DWORD dwValue
);

int GET_Y_LPARAM(
DWORD dwValue
);

Image non trouvée !Equivalent à LOWORD et HIWORD

Récupérer l'état des touches codé dans la partie basse d'une valeur 16 bits

int GET_KEYSTATE_WPARAM (
WORD wValue
);

Cf. exemple molette de la souris

Récupérer le déplacement de la molette codé sur la partie haute d'une valeur 16 bits

int GET_WHEEL_DELTA_WPARAM(
WORD wValue
);

Cf. exemple molette de la souris

Convertir un nombre 32 bits en type POINT

POINTS MAKEPOINTS(
DWORD dwValue
);