我正在创建一个简单的聊天程序,客户端可以将消息发送到服务器,该服务器显示收到的消息.出于某种原因,我无法输入文本框,即使它未设置为只读.没有我发布整个代码,任何人都可以看到简单的错误吗?这是我创建文本框的地方:
static HWND text;
switch(msg)
{
case WM_CREATE:
{
text = CreateWindow(TEXT("Edit"), TEXT("Enter text here..."),
WS_VISIBLE | WS_CHILD | WS_BORDER,
0, 0, 300, 25,
hwnd, (HMENU) ID_EDIT, NULL, NULL);
CreateWindow(TEXT("Button"), TEXT("Post"),
WS_VISIBLE | WS_CHILD,
310, 0, 70, 25,
hwnd, (HMENU) ID_POST, NULL, NULL);
CreateWindow(TEXT("Button"), TEXT("Connect"),
WS_VISIBLE | WS_CHILD,
0, 35, 70, 25,
hwnd, (HMENU) ID_CONNECT, NULL, NULL);
break;
}
Run Code Online (Sandbox Code Playgroud)
运用我的智力,我会说你在主函数中编写了自己的消息循环而你没有调用TranslateMessage().
函数TranslateMessage()负责将关键消息转换为char消息(不,这不是自动完成的:-).最终结果是您的EDIT窗口(所有窗口)都不会收到WM_CHAR消息.
所以你的消息循环至少应该是这样的:
MSG msg;
while (GetMessage(&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
864 次 |
| 最近记录: |