请教:MFC中“绑定”(attached to)是什么意思?
在MSDN以及很多MFC程序设计的参考书中经常会看到诸如将某个窗口绑定(attached to)到某个MFC对象。请问,这是什么意思?(最好能举个例子。)
[解决办法]
请看以下MFC代码:
BOOL CDC::Attach(HDC hDC)
{
ASSERT(m_hDC == NULL); // only attach once, detach on destroy
ASSERT(m_hAttribDC == NULL); // only attach to an empty DC
if (hDC == NULL)
return FALSE;
CHandleMap* pMap = afxMapHDC(TRUE); // create map if not exist
ASSERT(pMap != NULL);
pMap-> SetPermanent(m_hDC = hDC, this);
SetAttribDC(m_hDC); // Default to same as output
return TRUE;
};
HDC 是 SDK编程里的东西,它不是面向对象的。通过Attach()把它个一个CDC对象相绑定,以后就可以用CDC对象进行操作了。
[解决办法]
attcah
把一个句柄handel和一个mfc对象关联起来
如
HWND 和 CWnd
HDC 和 CDC
[解决办法]
理解两点:
1.资源,也窗体之类的,他们在运行时有一个句柄来描述他;
2.对象,用类封装描述窗口的C++对象。
在他们绑定后,就可以通过C++对象对资源进行操作。