编辑控件会弄乱我粘贴的序列号 [英] Edit control messes up my pasted serial number

查看:112
本文介绍了编辑控件会弄乱我粘贴的序列号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在VS2008的对话框中放了一个编辑框,并将其多行设置为true,这样我就可以粘贴一个base64编码的序列号。复制源是一个记事本.txt文件,如下所示:



gisG + B76G6 + NLubeCwJBzHF + gqc0inH7Yth4GaBU72BD31DrQl7KR70VaMngvmcOX92e2i

L + 52b2EXJtMT4NsKLjBTQzEbRz6s4oz + PtE40uO5Iinlhyyliwf0oTDY807YTK9ZbXb5yZ

pfLFWRBGmZC0W12zvoTNmkG8fxt785J + xZbxZeMjaWwJvww4BOo79UaRQdcmCKhIY8IIrj

iqhhbXPhFen1kyyALFwuo0x / rgjYtJMaha4zHHY1QVoEBM101mSHKizY2S9pM9onyas7It

Ki6lA5mFJcTGPQP3 + LZreYDsdDTQ4DpeMGEF5ypBCAM9lQIjTU / Xpy19zqCw0A ==



它看起来像这样在编辑框中粘贴时:



gisG + B76G6 + NLubeCwJBzHF

+ gqc0inH7Yth4GaBU72BD31DrQl7KR70VaMngvmcOX92e2i

L + 52b2EXJtMT4NsKLjBTQzEbRz6s4oz + PtE40uO5Iinlhyyliwf0oTDY807YTK9ZbXb5yZ

pfLFWRBGmZC0W12zvoTNmkG8fxt785J <无线电通信/>
+ xZbxZeMjaWwJvww4BOo79UaRQdcmCKhIY8IIrj

iqhhbXPhFen1kyyALFwuo0x / rgj YtJMaha4zHHY1QVoEBM101mSHKizY2S9pM9onyas7I

t

Ki6lA5mFJcTGPQP3 + LZreYDsdDTQ4DpeMGEF5ypBCAM9lQIjTU / Xpy19zqCw0A ==



我该怎么办?



不仅难看,被解析为无效。

奇怪的是,如果我复制丑陋的文字并将其粘贴在这里看起来很好。



:Ron

解决方案

我注意到你粘贴的5行,其中只有2行没有破碎 - 第二个也是最后一个。这些也是最短的两行。

我刚用一个多行编辑创建了一个对话框应用程序,将数据粘贴到它中 - 它很好,看起来像你原来的。 (它比文本宽)。然后我大大缩小了它,希望得到相同的输出 - 不,没有运气。整个字符串不再可见,但仍然只有5行文字。



关于那时我意识到我的编辑框只附加了两种样式。 ES_MULTILINE,尤其是ES_AUTOHSCROLL。如果文本对于框太宽或者包含换行符,ES_MULTILINE将换行。另一方面,ES_AUTOHSCROLL允许文本比控件运行更长时间。



这是我用来测试它的对话框的资源代码:

  //    
// 对话资源
//
LANGUAGE LANG_NEUTRAL SUBLANG_NEUTRAL
DLG_MAIN DIALOG 0 0 343 151
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
CAPTION 对话框
FONT 8 Ms Shell Dlg
{
EDITTEXT IDC_EDIT1,7,7,264,96, ES_AUTOHSCROLL | ES_MULTILINE // 确定
// EDITTEXT IDC_EDIT1,7,7,300,96,ES_AUTOHSCROLL | ES_MULTILINE //确定
// EDITTEXT IDC_EDIT1,7,7,264,96,ES_MULTILINE //失败 - 太窄,包裹
}





如果我从较窄的编辑中移除ES_AUTOHSCROLL盒,然后我得到以下:

<预LANG = VB> gisG + B76G6 + NLubeCwJBzHF
+ gqc0inH7Yth4GaBU72BD31DrQl7KR70VaMngvmcOX92e2i
L + 52b2EXJtMT4NsKLjBTQzEbRz6s4oz
+ PtE40uO5Iinlhyyliwf0oTDY807YTK9ZbXb5yZ
pfLFWRBGmZC0W12zvoTNmkG8fxt785J
+ xZbxZeMjaWwJvww4BOo79UaRQdcmCKhIY8IIrj
iqhhbXPhFen1kyyALFwuo0x / rgjYtJMaha4zHHY1QVoEBM101mSHKizY2S9pM9o
nyas7It
Ki6lA5mFJcTGPQP3 + LZreYDsdDTQ4DpeMGEF5ypBCAM9lQIjTU / Xpy19zqCw0A
==


I put an edit box on a dialog box in VS2008 and set it's multiline to true so I could paste a base64 encoded serial number in. The copy source was a notepad .txt file and looks like this:

gisG+B76G6+NLubeCwJBzHF+gqc0inH7Yth4GaBU72BD31DrQl7KR70VaMngvmcOX92e2i
L+52b2EXJtMT4NsKLjBTQzEbRz6s4oz+PtE40uO5Iinlhyyliwf0oTDY807YTK9ZbXb5yZ
pfLFWRBGmZC0W12zvoTNmkG8fxt785J+xZbxZeMjaWwJvww4BOo79UaRQdcmCKhIY8IIrj
iqhhbXPhFen1kyyALFwuo0x/rgjYtJMaha4zHHY1QVoEBM101mSHKizY2S9pM9onyas7It
Ki6lA5mFJcTGPQP3+LZreYDsdDTQ4DpeMGEF5ypBCAM9lQIjTU/Xpy19zqCw0A==

It looks like this in the edit box when pasted:

gisG+B76G6+NLubeCwJBzHF
+gqc0inH7Yth4GaBU72BD31DrQl7KR70VaMngvmcOX92e2i
L+52b2EXJtMT4NsKLjBTQzEbRz6s4oz+PtE40uO5Iinlhyyliwf0oTDY807YTK9ZbXb5yZ
pfLFWRBGmZC0W12zvoTNmkG8fxt785J
+xZbxZeMjaWwJvww4BOo79UaRQdcmCKhIY8IIrj
iqhhbXPhFen1kyyALFwuo0x/rgjYtJMaha4zHHY1QVoEBM101mSHKizY2S9pM9onyas7I
t
Ki6lA5mFJcTGPQP3+LZreYDsdDTQ4DpeMGEF5ypBCAM9lQIjTU/Xpy19zqCw0A==

What must I do?

No only is it ugly, is is parsed as invalid.
Curiously, if I copy the ugly text and paste it here it looks fine.

:Ron

解决方案

I notice that of the 5 lines you've pasted, only 2 of them have been un-broken - the second and the last. These are also the shortest two lines.
I just made a dialog app with a single multi-line edit, pasting your data into it - it's fine and looks like your original. (it was wider than the text). I then narrowed it considerably, hoping to get the same output - nope, no luck. The whole string is no longer visible, but there are still only 5 lines of text.

About then I realized that my edit-box has just two styles attached. ES_MULTILINE and more particularly ES_AUTOHSCROLL. ES_MULTILINE will wrap if the text is too wide for the box or if it contains line-breaks. ES_AUTOHSCROLL on the other hand, allows text to run longer than the control.

Here's the resource-code for the dialog I used to test it with:

//
// Dialog resources
//
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
DLG_MAIN DIALOG 0, 0, 343, 151
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "Ms Shell Dlg"
{
    EDITTEXT        IDC_EDIT1, 7, 7, 264, 96, ES_AUTOHSCROLL | ES_MULTILINE   // OK
//    EDITTEXT        IDC_EDIT1, 7, 7, 300, 96, ES_AUTOHSCROLL | ES_MULTILINE   // OK
//    EDITTEXT        IDC_EDIT1, 7, 7, 264, 96, ES_MULTILINE   // FAIL - too narrow, wraps
}



If I then remove the ES_AUTOHSCROLL from the narrower edit box, I then get the following:

gisG+B76G6+NLubeCwJBzHF
+gqc0inH7Yth4GaBU72BD31DrQl7KR70VaMngvmcOX92e2i
L+52b2EXJtMT4NsKLjBTQzEbRz6s4oz
+PtE40uO5Iinlhyyliwf0oTDY807YTK9ZbXb5yZ
pfLFWRBGmZC0W12zvoTNmkG8fxt785J
+xZbxZeMjaWwJvww4BOo79UaRQdcmCKhIY8IIrj
iqhhbXPhFen1kyyALFwuo0x/rgjYtJMaha4zHHY1QVoEBM101mSHKizY2S9pM9o
nyas7It
Ki6lA5mFJcTGPQP3+LZreYDsdDTQ4DpeMGEF5ypBCAM9lQIjTU/Xpy19zqCw0A
==


这篇关于编辑控件会弄乱我粘贴的序列号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆