比如我定义了一个: HWND hwnd;
并且得到hwnd对应的值, 那么我怎么得到hwnd对应的DC呢?
还请各位大虾帮忙.

解决方案 »

  1.   

    HDC GetDC(
      HWND hWnd   // handle to a window
    );
      

  2.   

    我按照
    HDC GetDC(
      HWND hWnd   // handle to a window
    );
    这样写:GetDC(hWnd)
    但是出现错误,提示如下:function does not take 1 parameters
      

  3.   

    GetDC()
    用完一定要ReleaseDC()
      

  4.   

    我试了   GetWindowDC(hwnd);
    出现同样的错误:function does not take 1 parameters
      

  5.   

    如果你用的是MFC,那 CWnd::GetDC()就不需要参数了。
      

  6.   

    不好意思,是菜鸟,刚学VC,所以都不懂我现在是得到了这样的一个变量HWND hwnd;我想得到该变量对应的DC, 用 CWnd::GetDC()可以吗?谢谢先
      

  7.   

    通过使用::GetDC,问题得到解决, 想问有什么区别啊?
      

  8.   

    ::GetDC调用API,HDC GetDC(
      HWND hWnd   // handle to a window
    );直接写GetDC,编译器认为你调用CWnd::GetDC
      

  9.   

    tooker(小菜) : 深有同感,呵呵。
      

  10.   

    倒-------------
    ::GetDC() ==CWnd::GetDC()
    而GetDC() ==^--------------------
      

  11.   

    趁大家都在,再问大家一个问题啊就是怎么把文件存到磁盘的某个位置我现在这样做: FILE *fp = fopen(filename, "w+b");,得到一个文件那我现在要把这个文件保存到磁盘,比如存到F盘下, 那么该怎么写啊, 各位帮忙啊
      

  12.   

    可以根据句柄构建临时窗口对象~
    CWnd wnd;    
    wnd.Append(HWnd);
    CDC *pDC = wnd.GetDC()
    ...
    wnd.ReleaseDC(pDC);
      

  13.   

    wnd.Detach()
    这句不能忘~ 要不然会把窗口销毁
      

  14.   

    我是在vc6.0下写的,用的是hdc=GetDC(hwnd),没问题啊!
      

  15.   

    我在消息处理程序里的VM_PAINT消息的处理部分用这个也可以得到设备句柄内容,
    case VM_PAINT:
    hdc=BeginPaint(hwnd,&ps);
    .....
    EndPaint(hwnd,&ps);