将键盘输入保存到CArray并输出到静态文本时出现问题

时间:2017-07-04 01:39:43

标签: mfc

我使用CArray使用SetWindowText(arr.GetDate())执行静态文本,结果是这样的

enter image description here

输入1时的结果是上面的图像。上半部分使用CString,下半部分使用CArray。您可以使用CString,但我想知道原因。

感谢您的回答 在CFormView的subclass.h文件中,定义CArray m_arr变量并在.cpp文件中添加wm_char作为击键事件

Void CMyCalcView :: OnChar (UINT nChar, UINT nRepCnt, UINT nFlags) 
{ 
M_arr.Add (nChar); 
CFormView :: OnChar (nChar, nRepCnt, nFlags); 
} 

使用wm_paint作为绘图事件

Void CMyCalcView :: OnPaint () 
{ 
CPaintDC dc (this); 
M_staticText.SetWindowText (m_arr.GetData ()); // m_staticText is a resource 
} 

1 个答案:

答案 0 :(得分:0)

CArray必须是TCHAR类型,并且请注意,如果没有终止0字符,SetWindowText将无法工作。

你必须分隔,所以SetWindowText会获取你的char后面的所有数据。

使用CString将是更好的解决方案。