使用函数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/