首页
社区
课程
招聘
[旧帖] [求助]发VC++的问题。。求解 0.00雪花
发表于: 2013-7-23 16:39 5472

[旧帖] [求助]发VC++的问题。。求解 0.00雪花

2013-7-23 16:39
5472
调用一个函数,参数为矩形四个坐标。用CRECT数据结构的四个变量传过去。数值没错。。但功能没正常实现。。
调式下。。可以正常的看到四个数字正确的传送过去了。。。,,为什么会这样。。
如果直接传数字。。功能就正常实现。。
我想死都没想明白。。。。好几天了。。用的是VS2012开发环境。。。
求高人解说下。。。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
那你为什么不试试将矩形四个坐标值分别赋值给四个int变量,然后再用这四个int变量传过去呢
2013-7-23 17:00
0
雪    币: 508
活跃值: (89)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
3
传个代码上来看看
2013-7-23 17:09
0
雪    币: 480
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
这个应该不难实现吧,楼主拿你代码来看看啊
2013-7-23 17:11
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
我这里vs2010的直接用也没问题啊
//定义窗口大小
        RECT r1;
        (GetDlgItem(IDC_TAB_MAIN))->GetClientRect(&r1);
        r1.top = 25;
        r1.left = 5;
        r1.bottom -= 20;
        r1.right -= 20;
        //设置窗口位置       
        page1.MoveWindow(&r1);
        page2.MoveWindow(&r1);
        //默认 page1
        page1.ShowWindow(true);

        test(r1.top, r1.left, r1.right, r1.bottom);

void CTabControlDlg::test(int a, int b, int c, int d)
{
        m_edt_sValues = _T("top: ") + IntToStr(a) + ",left: " + IntToStr(b) + ",right:" +IntToStr(c) + ",bottom:" + IntToStr(d);
        UpdateData(false);
}

CString CTabControlDlg::IntToStr(int iInput)
{
        char msg[32];
        memset(msg, 0, sizeof(msg));
        itoa(iInput, msg, 10);
        return CString(msg);
}
2013-7-23 17:22
0
雪    币: 106
活跃值: (569)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
肯定代码有问题喽,你不上代码我们怎么知道
2013-7-23 21:16
0
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
你在函数里打个log,把4个参数的值都打出来看看,看当用crect->传递的时候,究竟是不是传的正确的值
2013-7-23 22:47
0
雪    币: 9
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
CRect rect,rect1;
        gameh=::FindWindow(NULL,_T("强暴"));
        ::GetWindowRect(gameh,&rect);
        //::GetWindowRect(gameh,&rect1);
    //rect.left+=487;rect.top+=283;rect.right=rect.left+50;rect.bottom=rect.top+50;

        HBITMAP hMap =  CopyScreenToBitmap(rect);
            int fx=0,fy=0;
        //int add=FindBmpEx(rect.left,rect.top,rect.right,rect.bottom,_T("是的.bmp"),1,1,1,fx,fy);
        //int add=FindBmpEx(480,73,1000,866,_T("是的.bmp"),1,1,1,fx,fy);

调试时明显看到数值正确传过去了。但第一条传RECT的就找不到图。。直接传数字的那个就行;很奇怪。。
我也试过把定int XX来保存RECT的四个值。。然后再传。一样,,也没成功找到图。。
这是个屏幕找图函数FindBmpEx()。。
2013-7-24 07:49
0
雪    币: 1839
活跃值: (295)
能力值: ( LV9,RANK:370 )
在线值:
发帖
回帖
粉丝
9
对象没初始化。
2013-7-24 09:54
0
雪    币: 19
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
这也太奇怪了吧,感觉应该还是rect的值获取错误了,你为什么不在最后试着MessageBox弹出一下看看那四个字真得对吗?
2013-8-31 15:58
0
游客
登录 | 注册 方可回帖
返回
//