读书人

GetDC()引用有关问题

发布时间: 2012-10-12 10:17:04 作者: rapoo

GetDC()引用问题
int WinPixelFormat::initializePixelFormat()
{
static PIXELFORMATDESCRIPTOR pfd = {
sizeof(PIXELFORMATDESCRIPTOR), // pfd结构的大小
1, // 版本号
PFD_DRAW_TO_WINDOW | // 支持在窗口中绘图
PFD_SUPPORT_OPENGL | // 支持 OpenGL
PFD_DOUBLEBUFFER, // 双缓存模式
PFD_TYPE_RGBA, // RGBA 颜色模式
24, // 24 位颜色深度
0, 0, 0, 0, 0, 0, // 忽略颜色位
1, // 没有非透明度缓存
0, // 忽略移位位
0, // 无累加缓存
0, 0, 0, 0, // 忽略累加位
32, // 32 位深度缓存
8, // 无模板缓存 //改动阴影
0,
// 无辅助缓存
PFD_MAIN_PLANE, // 主层
0, // 保留
0, 0, 0 // 忽略层,可见性和损毁掩模
};

hdc = GetDC()->m_hDC; //出错的地方

// Pixel format.
m_nPixelFormat = ChoosePixelFormat(hdc, &pfd);

if(SetPixelFormat(hdc, m_nPixelFormat, &pfd) == false)
{
return false;
}

..........
}

在GetDC()处出现错误,

错误提示为“非静态成员引用必须与特定的对象相对”

但是我看见有人就是这么直接用的

求教大侠啊

[解决办法]
hdc = GetDC()->m_hDC; 应该不太会出错啊


initializePixelFormat这个函数是不是放在OnCreate里面了?很可能窗体还没建好你就直接调用了。所以出错了

读书人网 >VC/MFC

热点推荐