【问题标题】:Edit Control Is Behaving The Way It Shouldn't Be编辑控件的行为不应该是这样
【发布时间】:2013-10-24 06:38:49
【问题描述】:

起初,我按照guide 在 Win32 控制台应用程序中创建了一个 Corba C++ 服务器,并且它可以正常工作。根据该代码,我在 MFC 中创建了一个 Corba 服务器。

从 C++ Win32 服务器我有这个代码:

cout << argv[0] << ": server 'TestServer' bound" << endl;

这里是输出:

C:\Users\innistrad\documents\visual studio 2010\Projects\TestServer\
Debug\TestServer.exe: server 'TestServer' bound

argv[0]的内容是这样的:

C:\Users\innistrad\documents\visual studio 2010\Projects\TestServer\
Debug\TestServer.exe

所以,在 MFC 中,我是这样设计的:

msg = ": server 'TestServer' bound";
mDisp.SetWindowText(__argv[0] + msg);

问题是,它没有显示括号中的值。

但是,当我这样做时

AfxMessageBox(__argv[0] + msg);

我得到的输出与上述相同。

我尝试将编辑控件更改为新的编辑控件和列表框,但无济于事。似乎是什么问题?有人可以帮忙吗?

谢谢。

【问题讨论】:

  • 我们只能猜测。 argv__argv 是什么,它们之间有什么关系? msgmDisp 的类型是什么。为什么在将字符串文字分配给msg 时要加上括号?您确实需要提供SSCCE。当您说您正在获取值时,您是如何验证这一点的?
  • 对不起,我将编辑问题并发布输出。谢谢@IInspectable

标签: c++ mfc editcontrol omniorb


【解决方案1】:

变量msg是什么类型的试试下面

CString msgStr = ": server 'TestServer' bound";
mDisp.SetWindowText(CString(__argv[0]) + msgStr);

【讨论】:

  • 感谢@N3Xg3N 的帮助。味精是 CString,我在 .h 文件中声明了它,我还尝试按照您的说明进行操作,但仍然没有得到所需的输出。再次感谢您。
  • 试试这个CString msgStr(_T(": server 'TestServer' bound"));
  • @N3Xg3N,谢谢。我已经修好了。 UpdateWindow() 成功了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多