GetDlgItemInt()问题

时间:2009-10-27 00:13:38

标签: c++ winapi

好的,我在主窗口中有2个编辑控件和一个按钮;在一个编辑控件中,用户可以编写一个数字,当他按下按钮时我会读取该编号,然后将其打印在另一个编辑控件中(这是只读的)。

我的问题是,当我输入一个数字并按下按钮时,由于某些原因我不明白我可以得到那个数字。 GetDlgItemInt()总是返回零,他的第三个参数总是返回false。

这是我使用GetDlgItemInt()读取数字的代码:

            case CM_BUTTON:
                number = GetDlgItemInt(hwndEdit2, CM_EDIT2, &flag, FALSE); 
                if(flag)
                {
                    if(number > 0 && number < 20)
                    {
                        sprintf(message, "This is the number %d", number);
                        SetWindowText(hwndEdit, message);
                    }
                    else
                        MessageBox(hwnd, "Number to high or to low", "Error", MB_OK | MB_ICONWARNING);
                }
                else 
                    MessageBox(hwnd, "Error getting the number", "Error", MB_ICONEXCLAMATION | MB_OK);
                break;

有什么建议吗?

1 个答案:

答案 0 :(得分:5)

GetDlgItemInt的第一个参数应该是对话框的句柄。除非名称hwndEdit2 极其欺骗,否则您当前正在将句柄传递给编辑控件本身。