如何获取用户输入编辑框中的内容/

fengdream 2009-02-26 12:26:37
我建立了一个编辑框,但是获取不了编辑框中的内容,注意,输入内容可以是任意的。
程序很简单
有兴趣的可以看一下我的程序
case WM_CREATE:
{
/* The window is being created. Create our button
* window now. */
TEXTMETRIC tm;

/* First we use the system fixed font size to choose
* a nice button size. */
hdc = GetDC (hwnd);
SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT));
GetTextMetrics (hdc, &tm);
cx = tm.tmAveCharWidth * 30;
cy = (tm.tmHeight + tm.tmExternalLeading) * 2;
ReleaseDC (hwnd, hdc);

/* Now create the button */
hwndButton = CreateWindow (
"button",/* Builtin button class */
"Click Here",
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
0, 0, cx, cy,
hwnd,/* Parent is this window. */
(HMENU) 1,/* Control ID: 1 */
((LPCREATESTRUCT) lParam)->hInstance,
NULL);

/*创建一个编辑框 */
hwndEdit = CreateWindow(TEXT("Edit"),
NULL,
WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT,
0,0,100,20,
hwnd,
(HMENU)ID_EDIT,
((LPCREATESTRUCT)lParam)->hInstance,
NULL);

//PlaySound (TEXT ("hellowin.wav"), NULL, SND_FILENAME | SND_ASYNC) ;
break;

return 0;
break;
}

case WM_COMMAND:
{
/* Check the control ID, notification code and
* control handle to see if this is a button click
* message from our child button. */
if (LOWORD(wParam) == 1 &&
HIWORD(wParam) == BN_CLICKED &&
(HWND) lParam == hwndButton)
{
char *pBuf = "Connecting...";

/* 取出来编辑框里面的内容 */

/*CHAR strText[1024]= " ";
GetWindowText(hwndEdit, strText, 100);

MessageBox(NULL, strText, "文本框里的内容是: ",0);*/

TCHAR szText[MAX_PATH] = {0};
SendMessage(hwndEdit, WM_GETTEXT, MAX_PATH, (LPARAM)szText);
//SendMessage(hwndEdit, EM_GETLINE, 0, (LPARAM)szText);
MessageBox(NULL, szText, "文本框里的内容是2: ",0);
memcpy(g_Databuf, szText, 100);

//GetDlgItemText(hwndEdit, ID_EDIT, szText, MAX_PATH);
//MessageBox(NULL, szText, "文本框里的内容是2: ",0);

//memcpy(g_Databuf, pBuf, strlen(pBuf));
InvalidateRect(hwnd,NULL,TRUE);
UpdateWindow(hwnd);
}
return 0;
break;
}
...全文
1054 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
hrbccdl 2011-08-02
  • 打赏
  • 举报
回复
太复杂了呀
cnzdgs 2009-02-27
  • 打赏
  • 举报
回复
GetDlgItemText要给窗口句柄,不能给hwndEdit。
fengdream 2009-02-27
  • 打赏
  • 举报
回复
To cnzdgs :
非常感谢您的回复,第一时间就定位出来了我的问题,呵呵。果然是高手。
我的窗口句柄用的是栈变量。

不过现在有了另一个问题。我使用

GetWindowText(hwndEdit, strText, 100);
SendMessage(hwndEdit, WM_GETTEXT, MAX_PATH, (LPARAM)szText);
可以获取到内容。

但是,使用
GetDlgItemText(hwndEdit, ID_EDIT, szText, MAX_PATH);
MessageBox(NULL, szText, "文本框里的内容是2: ",0);
却获取不到内容
Show_Mike 2009-02-27
  • 打赏
  • 举报
回复
sdk中getdlgitem的函数原型:
UINT GetDlgItemText(
HWND hDlg, // handle to dialog box
int nIDDlgItem, // control identifier
LPTSTR lpString, // pointer to buffer for text
int nMaxCount // maximum size of string
);
对话框就是编辑框的父窗口.
chunyou128 2009-02-27
  • 打赏
  • 举报
回复
GetDlgItemText
biweilun 2009-02-27
  • 打赏
  • 举报
回复
GetDlgItemText不能乱用的,LZ多看看MSDN吧
ringphone 2009-02-27
  • 打赏
  • 举报
回复
GetDlgItemText的第一个参数必须是父窗口的句柄
ggmfc 2009-02-27
  • 打赏
  • 举报
回复
UP!学习了!
cnzdgs 2009-02-26
  • 打赏
  • 举报
回复
MessageBox显示的信息为空是吗?
hwndEdit是全局变量吗?调试看看hwndEdit的值是不是改变了。
WillyWonka 2009-02-26
  • 打赏
  • 举报
回复
char temp[50];
GetDlgItemText(ID_EDIT,temp);//temp就是内容了。
AfxMessageBox(temp);//看看结果
呵呵
有点乱,SDK编程...
cnzdgs 2009-02-26
  • 打赏
  • 举报
回复
从你的代码中看不出问题,把问题描述清楚。
[Quote=引用 1 楼 cnzdgs 的回复:]
MessageBox显示的信息为空是吗?
hwndEdit是全局变量吗?调试看看hwndEdit的值是不是改变了。
[/Quote]
fengdream 2009-02-26
  • 打赏
  • 举报
回复
GetDlgItemText
sendmessage都不管用,谁能提供一个实例代码
li985837 2009-02-26
  • 打赏
  • 举报
回复
CString temp;
GetDlgItemText(ID_EDIT,temp);//temp就是内容了。
AfxMessageBox(temp);//看看结果

看了这个程序发现这个就是非常直接简单的方法了。支持楼上。
zhoujianhei 2009-02-26
  • 打赏
  • 举报
回复
是为空,还是根本就没弹出消息框。感觉没什么问题啊。
jyh_baoding 2009-02-26
  • 打赏
  • 举报
回复
同意楼上
lcy_888 2009-02-26
  • 打赏
  • 举报
回复
CString temp;
GetDlgItemText(ID_EDIT,temp);//temp就是内容了。
AfxMessageBox(temp);//看看结果
lwx300 2009-02-26
  • 打赏
  • 举报
回复
GetDlgItemText(hwnd, ID_EDIT, szText, MAX_PATH);

16,470

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧