编辑控件会弄乱我粘贴的序列号 [英] Edit control messes up my pasted serial number
问题描述
我在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屋!