使用函数 GradientFill(); 时出现编译错误;在我的本机 WinAPI C++ 应用程序中
我究竟做错了什么?我怎样才能让我的代码编译?我正在使用Microsoft Visual C++ 2010 Express。
在我的项目中,我链接了正确的库 msimg32.lib 文件。请参阅下面的所有链接文件(项目属性->链接器->输入->附加依赖项):
comctl32.lib;kernel32.lib;gdi32.lib;winspool.lib;msimg32.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32。 lib;%(附加依赖项)
编译错误:
1>c:\users\app.cpp(129): 错误 C2064: 术语不计算为采用 6 个参数的函数
导致编译错误的代码:
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);
}