| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 6519 人关注过本帖
标题:如何获取对话框中的编辑框中的数字,急
只看楼主 加入收藏
pchangling
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-7-19
收藏
 问题点数:0 回复次数:7 
如何获取对话框中的编辑框中的数字,急
我用api写了一个小程序,点击菜单后弹出一个对话框,让在对话框的编辑框中输入数字,然后程序再读取对话框中的数字惊醒计算,请问如何提取数字呢,假设对话框的定义如下:

Dlg6 DIALOG DISCARDABLE 0, 0, 187, 70
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "软件运行授权"
FONT 10, "System"
BEGIN
DEFPUSHBUTTON "确定",IDOK,20,45,40,14
PUSHBUTTON "取消",IDCANCEL,95,45,40,14
LTEXT "请输入此软件作者授予的运行密码",IDC_STATIC,5,15,125,15,
SS_CENTERIMAGE
EDITTEXT IDC_EDIT1,135,15,45,15,ES_AUTOHSCROLL
END

调用 DialogBox(hInst,"Dlg6",hWnd,(DLGPROC)DlgProc1);显示对话框,
现在我不知如何提取IDC_EDIT1 中的数字,我用GetDlgItemText("Dlg6",IDC_EDIT1,apsd,6);提取时VC6.0提示:
error C2664: 'GetDlgItemTextA' : cannot convert parameter 1 from 'char [5]' to 'struct HWND__ *',
好想是说第一个参数错误,应该转换为 HWND 类型的,而我用DialogBox时就没有产生什么句柄啊,另外直接提
取出来的是不是字符串,如何把它专为长整型,整型,单/双精度型的
搜索更多相关主题的帖子: 对话框 数字 获取 
2007-07-22 18:08
pchangling
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-7-19
收藏
得分:0 
刚 DialogBox(hInst,"Dlg6",hWnd,(DLGPROC)DlgProc1);写错了,应为:
DialogBox(hInst,"Dlg6",hWnd,(DLGPROC)DlgProc6);
2007-07-22 18:10
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 
GetDlgItemText(this->m_hWnd,IDC_EDIT1,apsd,6);

天行健,君子以自强不息!!QQ:68660681
2007-07-22 18:19
pchangling
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-7-19
收藏
得分:0 

能否详细解释一下this->m_hWnd 的含义,如何获取DialogBox显示的对话框的HWND句柄并传给
GetDlgItemText("Dlg6",IDC_EDIT1,apsd,6);调用,另外直接提
取出来的是不是字符串,如何把它专为长整型,整型,单/双精度型的

2007-07-22 18:38
pchangling
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-7-19
收藏
得分:0 
不性啊,我是用API直接编写的代码,没有类,错误的提示是
error C2673:global functions do not have 'this' pointers
error C2227:left of '->m_hWnd' must point to class/struct/union
2007-07-22 18:40
余来
Rank: 6Rank: 6
等 级:贵宾
威 望:26
帖 子:956
专家分:18
注 册:2006-8-13
收藏
得分:0 

获取字符串形式
GetDlgItemText(主窗口句丙,控件句丙,缓冲区指针,缓冲区大小)
获取数字形式
int num=GetDlgItemInit(主窗口句丙,控件句丙,返回一个BOOL指针如果失败就会返回为假,是否是无符号类型数字)


2007-07-22 18:57
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 

没有类句柄还是有啊,传入的是对话框句柄。


天行健,君子以自强不息!!QQ:68660681
2007-07-22 19:04
pchangling
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-7-19
收藏
得分:0 

谢谢大侠的回复,小弟有仔细检查了一下,问题终于解决了,问题的关键在于对话框处理函数上:

BOOL CALLBACK DlgProc6(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_COMMAND:
switch(LOWORD(wParam))
{
case WM_INITDIALOG:
//SetFocus(
SendDlgItemMessage(IDC_EDIT1,WM_GETTEXT,6,(LPARAM)apsd);
case IDOK:
unsigned long password;
char apsd[10];
GetDlgItemText(hDlg,IDC_EDIT1,apsd,6);

password=atol(apsd);
if(password!=828349)
{
EndDialog(hDlg,0);
}
break;
case IDCANCEL:
EndDialog(hDlg,0);
return 1;
}
case WM_CLOSE:
EndDialog(hDlg,0);
return 1;

}
return 0;
}

只要把DlgProc6中形参HWND hDlg传给GetDlgItemText就型了,写为:GetDlgItemText(hDlg,IDC_EDIT1,apsd,6);

2007-07-22 19:55
快速回复:如何获取对话框中的编辑框中的数字,急
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016822 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved