HWND est une poignée à une fenêtre. Ce type est déclaré dans WinDef.h comme suit:
type HANDLE HWND;
HANDLE est la poignée d'un objet. Ce type est déclaré dans WinNT.h comme suit:
typedef PVOID HANDLE;
Enfin, PVOID est un pointeur vers n'importe quel type. Ce type est déclaré dans WinNT.h comme suit:
typedef void * PVOID;
Donc, HWND est en fait un pointeur sur void. Vous pouvez lancer un long à un HWND comme ceci:
HWND h = (HWND) my_long_var;
mais très prudent de quelles informations sont stockées dans my_long_var. Vous devez vous assurer que vous avez un pointeur là-dedans.
Édition ultérieure: L'avertissement suggère que vous avez activé les vérifications de portabilité 64 bits. Si vous créez une application 32 bits, vous pouvez les ignorer.
Merci pour votre réponse. J'ai essayé et j'ai reçu un avertissement: avertissement C4312: 'type cast': conversion de 'LONG' à 'HWND' de plus grande taille des suggestions? Merci. –
Je pense que c'est la meilleure réponse, '(HWND) long_ver' ne fonctionne pas pour moi! – ehsun7b