C++ 从文本框读取输入
我无法从第二个文本框读取数据,该文本框是IDC\u主输出。我只能显示第一个文本框的内容,即C++ 从文本框读取输入,c++,winapi,C++,Winapi,我无法从第二个文本框读取数据,该文本框是IDC\u主输出。我只能显示第一个文本框的内容,即IDC\u MAIN\u输入。我试过各种方法来解决这个问题,但还是解决不了。到目前为止,我的代码如下: switch (msg) { case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_MAIN_BUTTON: char *bufIn,
IDC\u MAIN\u输入
。我试过各种方法来解决这个问题,但还是解决不了。到目前为止,我的代码如下:
switch (msg)
{
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDC_MAIN_BUTTON:
char *bufIn, *bufOut;
int lenIn = GetWindowTextLength(GetDlgItem(hwnd, IDC_MAIN_INPUT));
int lenOut = GetWindowTextLength(GetDlgItem(hwnd, IDC_MAIN_OUTPUT));
bufIn = (char*)GlobalAlloc(GPTR, lenIn + 1);
GetDlgItemText(hwnd, IDC_MAIN_INPUT, bufIn, lenIn + 1);
bufOut = (char*)GlobalAlloc(GPTR, lenOut + 1);
GetDlgItemText(hwnd, IDC_MAIN_OUTPUT, bufOut, lenOut + 1);
MessageBox(NULL, bufIn, "String", NULL);
MessageBox(NULL, bufOut, "String", NULL);
//MessageBox(NULL, input, "Title Here", MB_OK);
mc.application(bufIn, bufOut);
}
break;
case WM_CREATE:
CreateObjects(hwnd);
break;
case WM_CLOSE:
DestroyWindow(hwnd);
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, msg, wParam, lParam);
}
return 0;
}
检查
GetDlgItem(hwnd,IDC\u MAIN\u输出)
的返回值是否不为空。如果为空,则IDC_MAIN_输出控件不存在。我已经在.h文件中声明了IDC_MAIN_输出,但仍然无法从IDC_MAIN_输出中获取数据。中断前}的相关性是什么?它是交换机内的一个交换机。请阅读新更新codes@user3479771:是否声明IDC_MAIN_输出不是问题(如果没有声明,程序将无法编译)。问题是:您的窗口中是否存在控件IDC\u MAIN\u输出?是否如我在前面的评论中所建议的那样,并检查GetDlgItem(hwnd,IDC\u MAIN\u输出)
是否返回空值。