pDC CDC GetDC hdc HDC hWnd HWND CWnd pWnd ---整理!!

来源:互联网 发布:佳能打印机扫描 mac 编辑:程序博客网 时间:2024/04/27 13:31

 

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中的某个窗口对象的地址)
       。.。