获取设备上下文句柄

来源:互联网 发布:林书豪数据 编辑:程序博客网 时间:2024/05/16 09:16

1.hdc=BeginPaint(hwnd,&ps);

  EndPaint(hwnd,&ps);

2.hdc=GetDC(hwnd);

  ReleaseDC(hwnd,hdc);

这两种方法的区别是第一个只能在Invalid区域draw,然后将Invalid区域Valid。第二个能在相应窗口的整个客户区的任何地方draw.但不会将Invalid区变成Valid.

3.hdc=GetWindowDC(hwnd);

 Release(hwnd,hdc);

这个设备上下文是整个窗口,包括标题栏,菜单,滚动条,工具栏等。可以在整个窗口的任意地方draw.但要在标题栏等非客户区draw,要处理一个WM_NCPAINT消息

4.hdc=CreateDC(pszDriver, pszDevice, pszOutput, pData);这个函数更普遍。第一个参数是指向设备驱动程序的字符串。"DISPLAY"指向显示器,通常"WINSPOOL"指向打印机。第二个参数指向输出设备的名字,显示器一般用NULL,打印机指出打印机名字,如“Epson FX-80”。第三个参数必须设为NULL。最后一个参数指向设备驱动程序的初始化细节数据,一般使用系统默认,为NULL。可以这样使用CreateDC("DISPLAY",NULL,NULL,NULL);或得整个显示器的设备上下文句柄。

如果GetDC(NULL)这样用的话,得到整个屏幕的设备上下文,可以在其他程序的窗口上draw了。

原创粉丝点击