我正在从事Win32项目(Visual Studio 2012)。用户可以输入多个标记及其坐标和名称。
现在,我要在列表框中添加所有标记名称作为单独的项目;但是使用下面的代码,我在列表框中什么都看不到:
string MarkerNames[10];
CMarkerList *Modeless;
if (!Modeless)
Modeless = new CMarkerList;
if (!::IsWindow(Modeless->GetSafeHwnd()))
Modeless->Create(IDD_DIALOG2,NULL);
Modeless->ShowWindow(SW_SHOW);
HWND hdlg = FindWindow(NULL,_T("Dialog"));
int index1 = SendDlgItemMessage(hdlg, IDC_LIST2, LB_ADDSTRING, 0, (LPARAM)(MarkerNames[0].c_str()));
哪个Modeless是我的对话框的对象,而MarkerNames是一个数组,我将标记的名称保存在其中;
如果我输入一个明确的字符串,例如“ TEST”,它可以工作,但是将参数传递给它有问题;
有什么问题,我该如何纠正?
非常感谢你的帮助 :)
最佳答案
_T的使用表明您正在为Unicode字符集构建程序,这是默认设置。如果是这种情况,则应使用wstring而不是string。