您的位置:首页 > 其它

VC中使用CRectTracker画图编译使用静态库时,光标消失解决方案

2016-08-29 11:45 447 查看
在工程中用到了VC的CRectTracker画图,是图片可以再次进行编辑。但是最近程序要发布的时候选择了使用MFC的静态库时,发现点击图片后光标消失不见了。我一开始以为是我代码写错了,到工程里调试很久一直没有解决。后来网上百度是发现,有很多前辈都遇到过这种情况,而且解决方法都已经给出来了。

下面是我稍微整理下的答案。

1:在vc的安装目录里找到拖动需要的光标(查找方法:找到vs的安装目录,在文件夹搜索选项里输入.cur即可),然后复制图标到你的工程,并添加到资源文件中。

2:在重写了CRectTracker的类中的构造函数里添加

extern HCURSOR _afxCursors[10];//引用trckrect.cpp文件中全局光标(静态编译时需要)
xxxxxxxxx()
{

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));

}

即可。

示例代码下载:http://download.csdn.net/detail/qq_23992597/9615706
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: