关闭

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

标签: MFCwindowsVCCRectTracker光标
298人阅读 评论(0) 收藏 举报
分类:

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:117997次
    • 积分:2153
    • 等级:
    • 排名:第17771名
    • 原创:70篇
    • 转载:108篇
    • 译文:0篇
    • 评论:10条
    我的qq群,新建群欢迎加入!
    博客或则下载的DEMO有什么问题,都可以进群问我,我基本上大部分时间都会在线的. 群内还有不少大神在线回答问题! 群号:255023660.欢迎新人,大神都来进驻! 点击链接加入群http://jq.qq.com/?_wv=1027&k=2BDqevm
    最新评论