mirror of
https://github.com/reactos/reactos.git
synced 2024-08-07 19:58:21 +00:00
[USER32] - Simplify DrawCaret
svn path=/trunk/; revision=54199
This commit is contained in:
parent
51a410c228
commit
d03bee3aa9
|
@ -31,53 +31,56 @@
|
|||
#include <user32.h>
|
||||
|
||||
#include <wine/debug.h>
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(user32);
|
||||
|
||||
/* FUNCTIONS *****************************************************************/
|
||||
|
||||
void
|
||||
DrawCaret(HWND hWnd,
|
||||
PTHRDCARETINFO CaretInfo)
|
||||
{
|
||||
HDC hDC, hComp;
|
||||
HDC hdc, hdcMem;
|
||||
HBITMAP hbmOld;
|
||||
BOOL bDone = FALSE;
|
||||
|
||||
hDC = GetDC(hWnd);
|
||||
if(hDC)
|
||||
hdc = GetDC(hWnd);
|
||||
if (!hdc)
|
||||
{
|
||||
if(CaretInfo->Bitmap && GetBitmapDimensionEx(CaretInfo->Bitmap, &CaretInfo->Size))
|
||||
{
|
||||
hComp = CreateCompatibleDC(hDC);
|
||||
if(hComp)
|
||||
{
|
||||
SelectObject(hComp, CaretInfo->Bitmap);
|
||||
BitBlt(hDC,
|
||||
CaretInfo->Pos.x,
|
||||
CaretInfo->Pos.y,
|
||||
CaretInfo->Size.cx,
|
||||
CaretInfo->Size.cy,
|
||||
hComp,
|
||||
0,
|
||||
0,
|
||||
SRCINVERT);
|
||||
DeleteDC(hComp);
|
||||
}
|
||||
else
|
||||
PatBlt(hDC,
|
||||
CaretInfo->Pos.x,
|
||||
CaretInfo->Pos.y,
|
||||
CaretInfo->Size.cx,
|
||||
CaretInfo->Size.cy,
|
||||
DSTINVERT);
|
||||
}
|
||||
else
|
||||
{
|
||||
PatBlt(hDC,
|
||||
CaretInfo->Pos.x,
|
||||
CaretInfo->Pos.y,
|
||||
CaretInfo->Size.cx,
|
||||
CaretInfo->Size.cy,
|
||||
DSTINVERT);
|
||||
}
|
||||
ReleaseDC(hWnd, hDC);
|
||||
ERR("GetDC failed\n");
|
||||
return;
|
||||
}
|
||||
|
||||
if(CaretInfo->Bitmap && GetBitmapDimensionEx(CaretInfo->Bitmap, &CaretInfo->Size))
|
||||
{
|
||||
hdcMem = CreateCompatibleDC(hdc);
|
||||
if (hdcMem)
|
||||
{
|
||||
hbmOld = SelectObject(hdcMem, CaretInfo->Bitmap);
|
||||
bDone = BitBlt(hdc,
|
||||
CaretInfo->Pos.x,
|
||||
CaretInfo->Pos.y,
|
||||
CaretInfo->Size.cx,
|
||||
CaretInfo->Size.cy,
|
||||
hdcMem,
|
||||
0,
|
||||
0,
|
||||
SRCINVERT);
|
||||
SelectObject(hdcMem, hbmOld);
|
||||
DeleteDC(hdcMem);
|
||||
}
|
||||
}
|
||||
|
||||
if (!bDone)
|
||||
{
|
||||
PatBlt(hdc,
|
||||
CaretInfo->Pos.x,
|
||||
CaretInfo->Pos.y,
|
||||
CaretInfo->Size.cx,
|
||||
CaretInfo->Size.cy,
|
||||
DSTINVERT);
|
||||
}
|
||||
|
||||
ReleaseDC(hWnd, hdc);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue