0

我编写了下面的代码。我在我的程序中使用过它,它似乎工作。无论如何,我在问它是否正确。

int SendMessageWMSIZE(HWND hwnd) {
    RECT rc;
    GetClientRect(hwnd,&rc);
    int lParam_my;
    short low=rc.right-rc.left; // LOWORD
    short high=rc.bottom-rc.top; // HIWORD
    lParam_my=(high<<16)|low;  // construct an int 32 from two int 16

    SendMessage(hwnd, WM_SIZE, 0, lParam_my);

    return lParam_my;
}

难道我不必用“int”改变“short”(我可以将 32 int 移动 16,但将 16 移动 16)?

如果我使用“short”或“int”而不是短裤,为什么它会起作用?

4

1 回答 1

6

MAKELPARAM使用宏会更惯用。

SendMessage(hwnd, WM_SIZE, 0, MAKELPARAM(low, high));
于 2012-06-22T09:34:11.007 回答