如何提取编辑框控件用户输入的内容并对其转换/比较?(c语言 API)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何提取编辑框控件用户输入的内容并对其转换/比较?(c语言 API)相关的知识,希望对你有一定的参考价值。

1.c语言 用API写界面(没办法 要求如此..)
2.我用getwindowtext获取了编辑框中的文字(TCHAR类型的),能在另一个编辑框或静态文本中显示出来 但是不能和我定义的同类型的变量作比较

//比如说让用户输入密码 我要获取用户输入来和正确密码做比较
//但是现在我提取的用户输入和存储的正确密码都能用TextOut正确的显示出来
//唯独比较的时候就是不相等..
3.有没有什么办法把用户输入(默认为TCHAR)正确转换为int 或别的格式存入全局变量?

距离Deadline还有三十个小时左右...跪求解决方案...
case ID_Load://点击button控件的操作
GetWindowText( hwndEdit1, szEdit, 200 );
SetWindowText( hwndEdit2, szEdit );//就是说在一个编辑框输入的文字可以正确显示在另一个里
TextOut( hdc, 315, 150, user.name[ 0 ], lstrlen( user.name[ 0 ] ) );
TextOut( hdc, 315, 170, szEdit, lstrlen( szEdit ) );//这两行显示结果都是正确的
switch( ( int ) szEdit )

case 101:
TextOut( hdc, 315, 250, user.name[ 0 ], lstrlen( user.name[ 0 ] ) );
//这里就无论如何都case不到101
//用if判断szEdit和user.name[ 0 ]也总是不等(我输入了101)
break;
default:
TextOut( hdc, 315, 250, user.name[ 1 ], lstrlen( user.name[ 1 ] ) );
break;

********************************************************************************

大家不用看了 我用_tsccmp()做到了 比较两个TCHAR
_tcscmp( szEdit, user.name[ 0 ] ) == 0

*********************************************************************************

TCHAR password[ 5 ][ 200 ] = "101","202";
CString str("");
str.Format(_T("%s"),password[1]);//TCHAR转化为CString
int temp=atoi(str); //atoi 、_atoi64或atol//CString转化为int追问

这个类只有MFC才有 MFC一定需要c++...

参考技术A 调试跟踪你的正确密码的字符串 和 获取输入框内的字符串
看看差别在哪里
另外看看用的比较的函数是不是对路追问

就是看起来没有差别..
用TextOut输出的结果都一样啊
但就是不等...

追答

你用的IDE能不能调试呢?
能调试,就看这几个变量的watch窗口

追问

1.我用的VS2012
2.能调试 调试结果除了if/switch语句别的都是正确的

就是说我显示出来用于检测的结果中 输入的值和正确的值都是对的 也是一样的
但是用if判断他们就不一样了。。

VB如何把文件内容显示在文本框中?

就是类似记事本一样的,我用Text1.Text=的方法不行,Open F.FiLenaMe又找不到路径,F是控件

VB6.0可以使用TextBok控件或RichTextBox控件实现将读入文本文件显示于控件中。

    TextBox 控件有时也称作编辑字段或者编辑控件,显示设计时输入的用户输入的、或运行时在代码中赋予控件的信息。

    为了在 TextBox 控件中显示多行文本,要将 MultiLine 属性设置为
    True。如果多行 TextBox 没有水平滚动条,那么即使 TextBox 调整了大小,文本也会自动换行。为了在
    TextBox 上定制滚动条组合,需要设置 ScrollBars 属性。

    如果文本框的 MultiLine 属性设置为 True 而且它的
    ScrollBars 没有设置为 None (0),则滚动条总出现在文本框上。

    如果将 MultiLine 属性设置为 True,则可以在 TextBox 内用 Alignment 属性设置文本的对齐。如果 MultiLine 属性是 False,则
    Alignment 属性不起作用。

    代码实例:

    Private Sub Command1_Click()

    Dim strj() As String

    \' 设置“CancelError”为 True

    CommonDialog1.CancelError = True

    On Error GoTo ErrHandler

    \' 设置标志

    CommonDialog1.Flags = cdlOFNHideReadOnly

    \' 设置过滤器

    CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files" & "(*.txt)|*.txt|Batch Files (*.bat)|*.bat"

    \' 指定缺省的过滤器

    CommonDialog1.FilterIndex = 2

    \' 显示“打开”对话框

    CommonDialog1.ShowOpen

    \' 显示选定文件的名字

    Debug.Print CommonDialog1.FileName

    Str = CommonDialog1.FileName

    Open CommonDialog1.FileName For Input As #1

    Do Until EOF(1)

    Line Input #1, s

    Text1.Text = Text1.Text & s & vbCrLf

    Loop

    Close #1

    Exit Sub

    ErrHandler:

    Exit Sub

    End Sub

    RichTextBox 控件不仅允许输入和编辑文本,同时还提供了标准 TextBox
    控件未具有的、更高级的指定格式的许多功能。

    上述代码同样适合RichTextBox控件使用


参考技术A 楼上已经给了方法,不过我提醒下,最好用Error方法判断文件选择是否取消,而不要用F.FileName="",不然第二次你选择取消也会打开第一次的文件 参考技术B 把Text1的MultiLine属性设为True,ScrollBars属性设为2 - Both

Private Sub Command1_Click()
F.Filter = "文本文档(*.txt)|*.txt"
F.FileName = ""
F.ShowOpen
If F.FileName = "" Then Enit Sub
getfreefile = FreeFile
Open F.FileName For Input As #getfreefile
Do While Not EOF(getfreefile)
Line Input #1, readfile
Text1.Text = Text1.Text & readfile & vbCrLf
Loop
Close #getfreefile
End Sub本回答被提问者采纳

以上是关于如何提取编辑框控件用户输入的内容并对其转换/比较?(c语言 API)的主要内容,如果未能解决你的问题,请参考以下文章

VB如何把文件内容显示在文本框中?

MFC的编辑框内容可以动态更新吗? 我用编辑框控件显示系统时间,想让它随时间变化自动更新,该怎么做?

mfc中,怎么把一个窗口的编辑框内容调用到另一个窗口的控件里

如何在 Flask 中摄取实时数据并对其进行预测 [重复]

tkinter中控件text能禁止用户对其显示的内容编辑吗(只让text有显示的功能)?

MFC输入框CEdit控件十六进制转换