hdcScreen = GetDC(0&)
hWnd 
[in] Handle to the window whose DC is to be retrieved. If this value is NULL, GetDC retrieves the DC for the entire screen.其中的entire screen指的是桌面?

解决方案 »

  1.   

    是桌面,如果hwnd = 0 ,getdc 返回一个代表桌面区域的dc
    也就是说,getwindowdc(0) 和 getdc(0) 在使用上是一样的,即便两个方法返回值可能不同。。
      

  2.   

    GetDC这个API有一个参数,如果这个参数是一个窗体的句柄,就返回这个句柄的DC,如果是0就是返回桌面区的DC。
      

  3.   

    the entire screen----整个屏幕,不能理解为桌面,桌面与屏幕是两码事.桌面应想象成一个文件夹.
      

  4.   

    hdcScreen = GetDC(0&)获取的是屏幕对象的DC.
      

  5.   

    hwnd -----------  Long,将获取其设备场景的窗口的句柄。若为0,则要获取整个屏幕的DC
      

  6.   

    Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
    【操作系统】
    Win9X:Yes
    WinNT:Yes
    【说明】
      获取指定窗口的设备场景 
    【返回值】
      Long,指定窗口的设备场景句柄,出错则为0 
    【其它】
      若窗口所属类具有CS_OWNDC,
      CS_CLASSDC 或 CS_PARENTDC样式,则获取的设备场景属窗口或类专有。vb的窗体和图片框控件也是这种情况,它用该函数取得的结果和控件的hdc属性相同(在autoredraw为FALSE时)。您无须考虑取回的窗体或图片框控件设备场景的默认状态,特别是绘图对象。另外,默认状态随着窗体和控件autoredraw属性的设置而不同。在设备场景释放前您必须回复其状态为初始值。对于没有CS_OWNDC,
      CS_CLASSDC 或 CS_PARENTDC样式的窗口的设备场景,可从通用windows缓存中获取,其状态为默认值。缓存中可用设备场景数量是有限的,因此只要可能就释放设备场景
      用本函数获取的设备场景一定要用ReleaseDC函数释放,不能用DeleteDC
    【参数表】
      hwnd -----------  Long,将获取其设备场景的窗口的句柄。若为0,则要获取整个屏幕的DC