Tru*_*Luu 2 c++ c++builder visual-studio-2008 visual-c++
在这里我的代码
if(bSelected)
{
clrTextSave=pDC->SetTextColor(::GetSysColor(COLOR_HIGHLIGHTTEXT));
clrBkSave=pDC->SetBkColor(::GetSysColor(COLOR_HIGHLIGHT));
pDC->FillRect(rcAllLabels,&CBrush(::GetSysColor(COLOR_HIGHLIGHT)));
}
else
pDC->FillRect(rcAllLabels,&CBrush(m_clrTextBk));
Run Code Online (Sandbox Code Playgroud)
当我在Visual Studio 2008上编辑它给我:警告C4238:使用非标准扩展:用作左值的类右值我不知道如何修复此警告?Plz有人帮忙吗?谢谢 !
您收到警告(这应该是一个错误,因为您应该始终使用最高警告级别编译代码)因为您正在创建临时并使用它的地址.要防止出现此警告,您需要创建一个局部变量:
if(bSelected)
{
clrTextSave = pDC->SetTextColor(::GetSysColor(COLOR_HIGHLIGHTTEXT));
clrBkSave = pDC->SetBkColor(::GetSysColor(COLOR_HIGHLIGHT));
CBrush brush(::GetSysColor(COLOR_HIGHLIGHT)); // create a local variable
pDC->FillRect(rcAllLabels, &brush); // use its address
}
else
{
CBrush brush(m_clrTextBk); // same thing here
pDC->FillRect(rcAllLabels, &brush);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8696 次 |
| 最近记录: |