在使用QQ截屏时,当移动光标时,光标所在的最小矩形会用青色方框框住,并且这个矩形高亮,其他区域呈灰色,请教下这个是怎么实现的?

解决方案 »

  1.   

    在实现移动鼠标,让光标所在的最小矩形用青色方框框住时,在OnMouseMove消息响应中添加下面代码        CWnd *pWnd = WindowFromPoint(point);
    CRect rc;
    CPen *pOldPen;
    CBrush *pOldBrush;
    if (pWnd)
    {
    GetWindowRect(&rc);
    CClientDC dc(this);
    CPen pen(PS_SOLID,10,RGB(0,255,0) );
    pOldPen = dc.SelectObject(&pen); CBrush brush;
    brush.CreateStockObject(NULL_BRUSH);
    pOldBrush = dc.SelectObject(&brush);
    dc.SetBkMode(TRANSPARENT); //dc.Rectangle(&rc);
    HWND hWnd = pWnd->GetSafeHwnd();
    TRACE(_T("Current window's hwnd is%d\n"),hWnd); }但无论鼠标怎么移动输出的句柄值都一样,后来发现程序在实现截屏时用了一个对话框,用桌面背景去填充对话框背景然后全屏置顶。所以每次获取的都是全屏对话框的句柄。这种情况下要怎样才能实现