85 lines
2.0 KiB
C++
85 lines
2.0 KiB
C++
// CursorInfor.h: interface for the CCursorInfor class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#if !defined(AFX_CURSORINFOR_H__ABC3705B_9461_4A94_B825_26539717C0D6__INCLUDED_)
|
|
#define AFX_CURSORINFOR_H__ABC3705B_9461_4A94_B825_26539717C0D6__INCLUDED_
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
enum {
|
|
USING_GDI = 0,
|
|
USING_DXGI = 1,
|
|
USING_VIRTUAL = 2,
|
|
};
|
|
|
|
#define ALGORITHM_GRAY 0
|
|
#define ALGORITHM_DIFF 1
|
|
#define ALGORITHM_DEFAULT 1
|
|
#define ALGORITHM_H264 2
|
|
#define ALGORITHM_HOME 3
|
|
|
|
#define MAX_CURSOR_TYPE 16
|
|
|
|
class CCursorInfo
|
|
{
|
|
private:
|
|
LPCTSTR m_CursorResArray[MAX_CURSOR_TYPE];
|
|
HCURSOR m_CursorHandleArray[MAX_CURSOR_TYPE];
|
|
|
|
public:
|
|
CCursorInfo()
|
|
{
|
|
LPCTSTR CursorResArray[MAX_CURSOR_TYPE] = {
|
|
IDC_APPSTARTING,
|
|
IDC_ARROW,
|
|
IDC_CROSS,
|
|
IDC_HAND,
|
|
IDC_HELP,
|
|
IDC_IBEAM,
|
|
IDC_ICON,
|
|
IDC_NO,
|
|
IDC_SIZE,
|
|
IDC_SIZEALL,
|
|
IDC_SIZENESW,
|
|
IDC_SIZENS,
|
|
IDC_SIZENWSE,
|
|
IDC_SIZEWE,
|
|
IDC_UPARROW,
|
|
IDC_WAIT
|
|
};
|
|
|
|
for (int i = 0; i < MAX_CURSOR_TYPE; ++i) {
|
|
m_CursorResArray[i] = CursorResArray[i];
|
|
m_CursorHandleArray[i] = LoadCursor(NULL, CursorResArray[i]);
|
|
}
|
|
}
|
|
|
|
int getCurrentCursorIndex() const
|
|
{
|
|
CURSORINFO ci;
|
|
ci.cbSize = sizeof(CURSORINFO);
|
|
if (!GetCursorInfo(&ci) || ci.flags != CURSOR_SHOWING)
|
|
return -1;
|
|
|
|
int i;
|
|
for (i = 0; i < MAX_CURSOR_TYPE; ++i) {
|
|
if (ci.hCursor == m_CursorHandleArray[i])
|
|
break;
|
|
}
|
|
|
|
int nIndex = i == MAX_CURSOR_TYPE ? -1 : i;
|
|
return nIndex;
|
|
}
|
|
|
|
HCURSOR getCursorHandle( int nIndex ) const
|
|
{
|
|
return (nIndex >= 0 && nIndex < MAX_CURSOR_TYPE) ? m_CursorHandleArray[nIndex] : NULL;
|
|
}
|
|
};
|
|
|
|
|
|
#endif // !defined(AFX_CURSORINFOR_H__ABC3705B_9461_4A94_B825_26539717C0D6__INCLUDED_)
|