Partilhar via


C28623

aviso C28623: Conversão não assinada de coordenadas GetMessagePos(). Use GET_X_LPARAM/GET_Y_LPARAM em vez de LOWORD/HIWORD

Os sistemas com vários monitores podem ter coordenadas x negativas e coordenadas y. Nesses sistemas, GetMessagePos podem, portanto, retornar valores negativos. No entanto, como LOWORD e HIWORD tratar as coordenadas como quantidades não assinadas, elas não devem ser usadas.

Exemplo

O PREfast relata o aviso para o exemplo a seguir.

DWORD dw = GetMessagePos();
POINT ppt;

ppt.x = LOWORD(dw);
ppt.y = HIWORD(dw);

O exemplo a seguir evita o erro.

DWORD dw = GetMessagePos();
POINT ppt;

ppt.x = GET_X_LPARAM(dw);
ppt.y = GET_Y_LPARAM(dw);