单文档,删除 "#define _AFX_NO_TRACKER_RESOURCES\r\n"这一行没用,在 3 TEXTINCLUDE 前添加 #undef _AFX_NO_TRACKER_RESOURCES 也没用,在 3 TEXTINCLUDE 后
添加 "#undef _AFX_NO_TRACKER_RESOURCES\r\n"也没用,把"#define _AFX_NO_TRACKER_RESOURCES\r\n"这一行删了再添加#undef _AFX_NO_TRACKER_RESOURCES 也没用,
实在不知道是咋了....
下面是资源文档:
3 TEXTINCLUDE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n"
"LANGUAGE 4, 2\r\n"
"#pragma code_page(936)\r\n"
"#include ""res\\cdra.rc2"" // 非 Microsoft Visual C++ 编辑的资源\r\n"
"#include ""l.CHS\\afxres.rc"" // 标准组件\r\n"
"#endif\r\n"
"\0"
END
添加 "#undef _AFX_NO_TRACKER_RESOURCES\r\n"也没用,把"#define _AFX_NO_TRACKER_RESOURCES\r\n"这一行删了再添加#undef _AFX_NO_TRACKER_RESOURCES 也没用,
实在不知道是咋了....
下面是资源文档:
3 TEXTINCLUDE
BEGIN
"#define _AFX_NO_SPLITTER_RESOURCES\r\n"
"#define _AFX_NO_OLE_RESOURCES\r\n"
"#define _AFX_NO_TRACKER_RESOURCES\r\n"
"#define _AFX_NO_PROPERTY_RESOURCES\r\n"
"\r\n"
"#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)\r\n"
"LANGUAGE 4, 2\r\n"
"#pragma code_page(936)\r\n"
"#include ""res\\cdra.rc2"" // 非 Microsoft Visual C++ 编辑的资源\r\n"
"#include ""l.CHS\\afxres.rc"" // 标准组件\r\n"
"#endif\r\n"
"\0"
END
extern HCURSOR _afxCursors[10];//引用trckrect.cpp文件中全局光标(静态编译时需要)
BOOL InitCursor()
{
/*原系统
// Note: all track cursors must live in same module
HINSTANCE hInst = AfxFindResourceHandle(
ATL_MAKEINTRESOURCE(AFX_IDC_TRACK4WAY), ATL_RT_GROUP_CURSOR);//RT_GROUP_CURSOR // initialize the cursor array
_afxCursors[0] = ::LoadCursor(hInst, ATL_MAKEINTRESOURCE(AFX_IDC_TRACKNWSE));
_afxCursors[1] = ::LoadCursor(hInst, ATL_MAKEINTRESOURCE(AFX_IDC_TRACKNESW));
_afxCursors[2] = _afxCursors[0];
_afxCursors[3] = _afxCursors[1];
_afxCursors[4] = ::LoadCursor(hInst, ATL_MAKEINTRESOURCE(AFX_IDC_TRACKNS));
_afxCursors[5] = ::LoadCursor(hInst, ATL_MAKEINTRESOURCE(AFX_IDC_TRACKWE));
_afxCursors[6] = _afxCursors[4];
_afxCursors[7] = _afxCursors[5];
_afxCursors[8] = ::LoadCursor(hInst, ATL_MAKEINTRESOURCE(AFX_IDC_TRACK4WAY));
_afxCursors[9] = ::LoadCursor(hInst, ATL_MAKEINTRESOURCE(AFX_IDC_MOVE4WAY));
*/
HINSTANCE hInst = AfxGetInstanceHandle(); if (!_afxCursors[0])
_afxCursors[0] = ::LoadCursor(hInst, MAKEINTRESOURCE(IDC_TRCKNWSE)); if (!_afxCursors[1])
_afxCursors[1] = ::LoadCursor(hInst, MAKEINTRESOURCE(IDC_TRCKNESW)); if (!_afxCursors[2])
_afxCursors[2] = _afxCursors[0]; if (!_afxCursors[3])
_afxCursors[3] = _afxCursors[1]; if (!_afxCursors[4])
_afxCursors[4] = ::LoadCursor(hInst, MAKEINTRESOURCE(IDC_TRCKNS)); if (!_afxCursors[5])
_afxCursors[5] = ::LoadCursor(hInst, MAKEINTRESOURCE(IDC_TRCKWE)); if (!_afxCursors[6])
_afxCursors[6] = _afxCursors[4]; if (!_afxCursors[7])
_afxCursors[7] = _afxCursors[5]; if (!_afxCursors[8])
_afxCursors[8] = ::LoadCursor(hInst, MAKEINTRESOURCE(IDC_TRCK4WAY)); if (!_afxCursors[9])
_afxCursors[9] = ::LoadCursor(hInst, MAKEINTRESOURCE(IDC_TRCK4WAY)); return TRUE;
}不知你是用哪种更好的方法?可以分享下.
还有个在2010的OCX中,也是用的静态库,添加#undef _AFX_NO_TRACKER_RESOURCES没有用,后来我自己添加了下代码,也可以解决问题,只是好像图标不太一样,偏大,代码如下:
BOOL CMoveCtrl::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
return FALSE;
BOOL bRet = FALSE;
CPoint point;
GetCursorPos(&point);
m_pParent->ScreenToClient(&point);
int nMoveType = PointInType(point);
HCURSOR hCursor = NULL;
if (nMoveType == 4)
{
hCursor = LoadCursor(NULL,IDC_SIZEALL);
}
else if (0 == nMoveType || 8 == nMoveType)
{
hCursor = LoadCursor(NULL,IDC_SIZENWSE);
}
else if (2 == nMoveType || 6 == nMoveType)
{
hCursor = LoadCursor(NULL,IDC_SIZENESW);
}
else if (1 == nMoveType || 7 == nMoveType)
{
hCursor = LoadCursor(NULL,IDC_SIZENS);
}
else if (3 == nMoveType || 5 == nMoveType)
{
hCursor = LoadCursor(NULL,IDC_SIZEWE);
}
if (hCursor)
{
SetCursor(hCursor);
return TRUE;
} return FALSE;
}
BOOL CXRectTacker::SetCursor(CWnd* pWnd, UINT nHitTest)
{
HCURSOR hCursor = NULL;
CPoint ptMouse;
::GetCursorPos(&ptMouse);
pWnd->ScreenToClient(&ptMouse);
int nHitType = HitTest(ptMouse);
if (hitNothing == nHitType)
{
return FALSE;
}
if (hitMiddle == nHitType)
{
hCursor = LoadCursor(NULL, IDC_SIZEALL);
}
else if (hitTopLeft == nHitType || hitBottomRight == nHitType)
{
hCursor = LoadCursor(NULL, IDC_SIZENWSE);
}
else if (hitBottomLeft == nHitType || hitTopRight == nHitType)
{
hCursor = LoadCursor(NULL, IDC_SIZENESW);
}
else if (hitTop == nHitType || hitBottom == nHitType)
{
hCursor = LoadCursor(NULL, IDC_SIZENS);
}
else if (hitLeft == nHitType || hitRight == nHitType)
{
hCursor = LoadCursor(NULL, IDC_SIZEWE);
} if (hCursor)
{
::SetCursor(hCursor);
return TRUE;
} return FALSE;
//return CRectTracker::SetCursor(pWnd, nHitTest);
}