0

我遇到了一些问题lb_getcursel以及它返回的内容(如果它甚至返回任何东西)

这是我的消息处理程序...

case IDT_TESTLIST1:
if(HIWORD(wParam) == LBN_DBLCLK) {
    int ret = 0;
    double TimeOut = 60.0;
    int Lng = 1;
    unsigned char Param[255] = {0};
    unsigned char Port1 = port1;

    int iCurSel = SendDlgItemMessage(hwnd,IDT_TESTLIST1,LB_GETCURSEL,0.0);

    ret = PSB30_Open(Port1,16);
    ret = PSB30_SendOrder(Port1,test1[iCurSel].testNumber, &Param[0],&Lng,&TimeOut);
    ret = PSB30_Close(Port1);
}
break;

我正在使用 Visual Studio 2010,每当我运行程序时,iCurSel 看起来都没有被赋值,默认为 0,当我进入 case 语句时,并非所有变量都在 autos 部分可见,当我添加时iCurSel 的手表我收到 CXX0017:错误消息。

hwnd 是我的主窗口的句柄并且是正确的

任何帮助,将不胜感激

干杯

4

1 回答 1

2

我觉得有趣的是,我在消息中的所有变量都没有通过将鼠标悬停在它们上来显示任何内容

那是因为它们不存在。您的程序无法编译,它有错误。SendDlgItemMessage() 接受 5 个参数,您传递 4 个。最后一个因错字而变成浮点值。

显然,您需要注意编译错误消息。并更改设置,以免再次发生这种情况。工具 + 选项、项目和解决方案、构建和运行。将“运行时,发生构建或部署错误”设置更改为“不启动”。

于 2013-06-22T22:31:25.023 回答