C28623

警告 C28623:GetMessagePos () 坐标的无符号强制转换。 使用 GET_X_LPARAM/GET_Y_LPARAM 而不是 LOWORD/HIWORD

具有多个监视器的系统可以具有负 x 坐标和 y 坐标。 因此,在此类系统上, GetMessagePos 可能会返回负值。 但是,由于 LOWORDHIWORD 将坐标视为无符号数量,因此不应使用它们。

示例

PREfast 报告以下示例的警告。

DWORD dw = GetMessagePos();
POINT ppt;

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

以下示例避免了此错误。

DWORD dw = GetMessagePos();
POINT ppt;

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