我有一个编辑框,其属性为ES_NUMBER
,并在按钮上尝试检查编辑框的值是否介于2和15之间(包含)。从WinAPI的编辑窗口中正确提取int以进行逻辑测试
检查了StackOverflow后,我发现强烈建议使用strtol()
而不是atoi()
,但是都没有成功地允许我执行必要的检查。请参阅下面的当前代码。
char buff[1024];
GetWindowText(hWndNoOfTeams, (LPWSTR)buff, 1024);
int i;
i = strtol(buff,NULL,10);
if ((i > 1)&&(i < 16)){
MessageBox(hWnd, (LPCWSTR)buff, L"MSGBOX", MB_OK);
}else{
MessageBox(hWnd, L"The number of teams must be greater than 1 and less than 16.", L"MSGBOX", MB_OK);
};
该测试在0和9之间正常工作,但是,除此之外它总是显示第二个消息框。我怀疑问题在于从字符串中提取整数的方法,因为所有值buff
数组都包含正确的值。
道歉,如果我错过了应该显而易见的东西。