CPoint pt;
GetCursorPos(&pt);
CWnd* tWnd  = WindowFromPoint(pt);
HWND hWnd = tWnd->GetSafeHwnd(); //窗口句柄
HDC hdc;
CDC *dc=GetDC();
hdc=dc->GetSafeHdc();
得到的不是与hWnd对应的HDC

解决方案 »

  1.   

    CPoint pt;
    GetCursorPos(&pt);
    CWnd* tWnd  = WindowFromPoint(pt);
    HWND hWnd = tWnd->GetSafeHwnd(); //窗口句柄
    HDC hdc;
    CDC *dc=GetDC(hdc);
    hdc=dc->GetSafeHdc();
      

  2.   

    CDC *dc=GetDC(hdc);
    报错error C2660: 'GetDC' : function does not take 1 parameters
      

  3.   

    CPoint pt;
    GetCursorPos(&pt);
    CWnd* tWnd  = WindowFromPoint(pt);
    HWND hWnd = tWnd->GetSafeHwnd(); //窗口句柄
    HDC hdc = ::GetDC(hWnd);
      

  4.   

    这样为何不能将粘贴板上的东西粘贴到richedit中去呢?
    CPoint pt;
    GetCursorPos(&pt);
    CWnd* tWnd  = WindowFromPoint(pt);
    HWND hWnd = tWnd->GetSafeHwnd(); 
    CString source;
    source="";
    LPSTR me =  new char[128];
    memset(me,0,128);
    HDC dc = ::GetDC(hWnd);
    if (hWnd == m_rich.m_hWnd) 
    {

    if(OpenClipboard())
    {
    me=(char*)GetClipboardData(CF_TEXT);
    ::TextOut(dc, pt.x, pt.y, me, 7);
    CloseClipboard();
    }
    else
    {
    MessageBox("don't do it");

    }
    }