使用函数GradientFill()时出现编译错误。在我的本机WinAPI C++应用程序中

我究竟做错了什么?如何获取我的代码进行编译?我正在使用 Microsoft Visual C++ 2010 Express

在我的项目中,我已链接了正确的库msimg32.lib文件。请参阅下面的所有链接文件(项目属性->链接器->输入->其他依赖项):



编译错误:



导致编译错误的代码:

void TransparentCheckbox::verticalGradient(HDC hDC, const RECT& GradientFill, COLORREF rgbTop, COLORREF rgbBottom)
{
    GRADIENT_RECT gradientRect = { 0, 1 };
    TRIVERTEX triVertext[ 2 ] = {
        GradientFill.left - 1,
        GradientFill.top - 1,
        GetRValue(rgbTop) << 8,
        GetGValue(rgbTop) << 8,
        GetBValue(rgbTop) << 8,
        0x0000,
        GradientFill.right,
        GradientFill.bottom,
        GetRValue(rgbBottom) << 8,
        GetGValue(rgbBottom) << 8,
        GetBValue(rgbBottom) << 8,
        0x0000
    };

    // Below is line 129
    GradientFill(hDC, triVertext, 2, &gradientRect, 1, GRADIENT_FILL_RECT_V);
}

最佳答案

您已经声明了一个参数;将 GradientFill 设置为 const RECT&,然后调用Windows GradientFill过程-这导致冲突。我将更改参数的名称,或者您可以将过程调用的范围设置为::GradientFill

关于c++ - 当我使用GradientFill()函数时无法编译代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10965822/

10-10 03:42