HWND является дескриптор окна. Этот тип заявлен в WinDef.h следующим образом:
typedef HANDLE HWND;
HANDLE - это ручка для объекта. Этот тип заявлен в WinNT.h следующим образом:
typedef PVOID HANDLE;
И, наконец, PVOID является указателем на любой тип. Этот тип заявлен в WinNT.h следующим образом:
typedef void * PVOID;
Итак, HWND на самом деле является указателем на пустоту. Вы можете сделать длинный HWND следующим образом:
HWND h = (HWND) my_long_var;
, но очень осторожно, какая информация хранится в my_long_var. Вы должны убедиться, что у вас есть указатель.
Позже изменить: Предупреждение предполагает, что вы включили проверку совместимости с 64-битной версией. Если вы создаете 32-битное приложение, вы можете их игнорировать.
Спасибо за ваш ответ. Я пробовал это и получил предупреждение: предупреждение C4312: 'тип cast': преобразование из 'LONG' в 'HWND' большего размера любые предложения? Спасибо. – 2008-09-18 06:34:48
Я думаю, что это лучший ответ: `(HWND) long_ver` не работает для меня! – ehsun7b 2012-02-14 10:30:42