CDC *pDC
pDC = GetDC();
void show::draw(CWnd * pWnd)//要是CWnd指针是成员变量就可写成void show::draw()
{
CDC * pDC = pWnd->GetDC();//get the pWnd 's DC
//use dc draw your pic
...
pWnd->ReleaseDC(pDC);
}
---
void show::draw(HWND hWnd)//要是hWnd是成员变量就可写成void show::draw()
{
HDC hdc =GetDC(hWnd);//get the hWnd 's DC
//use dc draw your pic
...
ReleaseDC(hWnd,hdc);
}
---------------
HWND hWnd= :: GetWindow (:: GetDesktopWindow(), GW_CHILD)
VC的窗口类和窗口句柄的转换。
窗口类就是CWnd,窗口句柄就是HWND。CWnd和HWND之间互相转换代码如下:
CWnd *pWnd;
HWND hWnd;
hWnd = pWnd->GetSafeHwnd(); //CWnd->HWND
pWnd = CWnd::FromHandle(hWnd); //HWND->CWnd
--------
HWND 句柄,其实就是void*类型的,当然没有函数可调用,只有用API对它进行操作。
Cwnd 是C++的一个类,有函数调用。但其操作的对像其实就是一个HWND的句柄。
主窗口的CWND 就是框架窗口了,包括其他子窗口的容器
就是MFC与SDK的关系.弄懂了,WINDOWS编程就变得容易了
CWnd是类名
HWND是句柄
LRESULT AFXAPI AfxCallWndProc(CWnd* pWnd, HWND hWnd, UINT nMsg,...
Cwnd是C++里面的一个类 HWND是一个句柄,他是一个32位的数,相当于c里面的指针. |
HWND是个整数,存放于windows资源标志表 例如 HWND hWnd1 1 (表示进程1中的某个窗口对象的地址) HWND hWnd2 2 (表示进程2中的某个窗口对象的地址) 。.。 |