我对 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 添加 watch 时,我收到 CXX0017:错误消息。
hwnd 是我主窗口的句柄并且是正确的
任何帮助将不胜感激
干杯
最佳答案
i find it funny that none of my variables in the message are showing anything by hovering over them
那是因为它们不存在。你的程序无法编译,它有一个错误。 SendDlgItemMessage() 有 5 个参数,你传递了 4 个。最后一个因打字错误而变成了浮点值。
显然,您需要注意编译错误消息。并更改设置,以免再次发生这种情况。工具 + 选项、项目和解决方案、构建和运行。将“在运行时,发生构建或部署错误时”设置更改为“不启动”。
关于c - LB_GETCURSEL 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17254180/