Hi,VC6下 Dialog-Based MFC App中,在对话框中一个button的click响应函数中,pDC = CDC::FromHandle(::GetDC(GetSafeHwnd()));//获取当前整个对话框的DC我想对这个对话框抓屏,如同按键Alt + Print Screen那样,如上这样获取的DC好像不对呵?高手请指正。谢谢。

解决方案 »

  1.   

    好像获取的是对话框客户区的DC,即不包括title条和左右边界;奇怪的是这样保存的bmp中,下边却多出了一些桌面的图形。请求解惑!
      

  2.   

    不是很清楚你的意思,但是你这样获得的肯定是客户区的DC。
    如果获得整个对话框的DC应该这样:
    CDC * pDC = CDC::FromHandle(::GetWindowDC(GetSafeHwnd()));
      

  3.   

    谢谢 arronbnm 兄台!
    查MSDN看了一下,明白::GetWindowDC()与::GetDC()的区别了。其实那行代码应该更简单地改为:
    CDC * pDC = GetWindowDC(); 另有一个小小问题:我需要知道当前这个CWnd的width和height, 像素。
    不知该用CWnd的哪个成员函数,还是CDC的哪个成员函数?VC6中对DC这个概念还真不是那么熟悉。呵呵!请指教!非常感谢热心帮助!
      

  4.   

    CRect rect;
    GetWindowRect(&rect);rect.Width();      /
    rect.Height();