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

来源:互联网 发布:崩坏三矩阵buff 编辑:程序博客网 时间:2024/05/18 06:34

在工程中用到了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

1 0
原创粉丝点击