VC中,关于LOGPALETTE使用时的错误,怎么解决啊?

[复制链接]
查看11 | 回复1 | 2009-4-2 09:50:26 | 显示全部楼层 |阅读模式
照着书,做一个颜色井,编译出错,请各位大牛版名解答;初始化函数如下:
void CColourPopup::Initialize()
{
m_nNumColours =sizeof(m_crColours)/sizeof(ColourTableEntry);
ASSERT(m_nNumColoursMAX_COLOURS)
m_nNumColours=MAX_COLOURS;
m_nNumColunms
=0;
m_nNumRows
=0;
//显示的颜色井中各个颜色框的大小
m_nBoxSize
=18;
m_nMargin
=::GetSystemMetrics(SM_CXEDGE);
m_nCurrentRow
=-1;
m_nCurrentCol
=-1;
m_nChosenColourRow=-1;
m_nChosenColourCol=-1;
m_strCustomText
=_T("其他颜色...");
m_bShowCustom
=TRUE;
m_pParent
=NULL;
m_crColour
=m_crInitialColour=RGB(0,0,0);
//
//设定了颜色板中颜色区域的面积,其最小值为7+2*m_nMargin
if(m_nBoxSize-2*m_nMargin-2palNumEntries=m_nNumColours;
//
LOGPALETTE*pLogPalette=(LOGPALETTE*)&pal;
for(int i=0;ipalPalEntry.peRed=GetRValue(m_crColours.crColour);
pLogPalette->palPalEntry.peGreen =GetGValue(m_crColours.crColour);
pLogPalette->palPalEntry.peBlue=GetBValue(m_crColours.crColour);
pLogPalette->palPalEntry.peFlags =0;
}
//以创建的逻辑颜色板为模板来生成MFC的CPalette类
m_Palette.CreatePalette(pLogPalette);
}
报错就两个,
ColourPopup.cpp
E:\我的文档\CTestProgressBar\ColourPopup.cpp(107) : error C2065: 'pLogPalette' : undeclared identifier
E:\我的文档\CTestProgressBar\ColourPopup.cpp(107) : error C2227: left of '->palNumEntries' must point to class/struct/union
Error executing cl.exe.
CTestProgressBar.exe - 2 error(s), 0 warning(s)
程序与课本一致,代码抄写无误

回复

使用道具 举报

千问 | 2009-4-2 09:50:26 | 显示全部楼层
ColourPopup.cpp的107行pLogPalette没有定义过。这说明你的变量名书写错了,或者该变量你没有定义过。 下面一个错误通上。 抄别人的代码首先做到的是抄写无误!告诉你了抄写错误你怎么不相信呢?struct { //逻辑颜色板 LOGPALETTE LogPalette; PALETTEENTRY PalEntry[MAX_COLOURS]; } pal; 这只是一个结构的声明,不是实例,怎么可以这样用呢:pLogPalette->palNumEntries=m_nNumColours;这里的pLogPalette是什么东西呀?你定义过了吗?...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行