不是,使用GetItemText取得节点文本,将文本传入修改信息对话框,修改后,将修改后的字符串设置到原来的节点,使用SetItemText函数,示例如下:
m_wndTree为树控件变量;
CTextDialog 为修改文本的对话框,这个根据你的实际情况确定。
void ModifyItemText()
{
HTREEITEM hItem = m_wndTreeGetSelectedItem();
if (hItem == NULL)
return;
CString sText = GetItemText(hItem);
CTextDialog dlg;
dlgm_sText = sText;
if (dlgDoModal() != IDOK)
return;
sText = dlgm_sText;
m_wndTreeSetItemText(hItem, sText);
}
1、获取对话框的布局 AlertDialog dlg = XXXXX;//初始化一个对话框View view = dlggetView();//获取对话框的布局2、通过对话框的布局获取对应的edittext组件 EditText et = (EditText)dlgfindViewById(Ridxxxx);//获取对话框中的EditText3
错误提示是说函数不能接受两个参数。这是因为命名控件造成的。MFC中很多函数名跟SDK里的都是重复的。如果你在MFC中要用API那么建议养成良好习惯在函数前面加:: 也就是改为"::GetDlgItemText(xxx,xxx)"对于第一个句柄参数你可以用this指针。::GetDlgItemText(this->m_hWnd,xxx,xxx,xxx)第二个参数是控件ID,第三个是接受的字符的缓存指针,第四个是最大接受几个字符的个数;如果你省略了"::"那么默认是使用的 MFC的CWnd类的方法。可以这样调用:CString str;this->GetDlgItemText(IDC_TEXT,str); 补充: 完蛋了,现在才发现原来已经回答了好几个你的相关问题,不知道会不会被举报刷分。 追问: 不好意思,还是不行。说明下:我把上面的GetDlgItemText和SetDlgItemText函数写在线程里了。为什么不行呢?还是有错误提示!谢谢! 回答: 错误提示是什么你也不贴上来 不过我已经大致猜出来了 既然你是写在线程函数里 那么错误提示 应该是说this不是静态变量什么的。当然啊,线程函数是不能使用类的成员的。解决方法有两个第一:定义一个全局变量保存窗口句柄,在线程函数里用全局变量。第二:把类的指针当做参数传递给线程函数。你创建线程的时候 CreateThread(NULL,0,NULL,this,0,NULL);线程处理函数:DWORD WINAPI ThreadPro(LPVOID lpvoid){ xxxxxx p = (xxxxxx )lpvoid;//关键就是这句代码了,把传进来的参数转换成类指针。"XXXXXX"是你的类名。
if(IDOK==dlgDoModal())
这条语句执行完成之后,对话框对象还在,窗口已经销毁。这时候去 *** 作对话框界面肯定不行的
模态对话框,初始化在对话框类的OnInitDialog里面(代码里没有Classwizard重载),绘制 *** 作在OnPaint里面。
获取文档类办法很多,以你当前代码为例:
CGraphicsDlg dlg;dlgpDoc = GetDocument();//传递文档类指针,对话框类成员变量pDoc
if(IDOK==dlgDoModal())
{
}
这样传递之后,对话框类成员函数都可以通过pDoc->变量; 获取文档类数据了,注意对话框类需要包含文档类头文件。
以上就是关于高手救我~~~TreeCtrl中如何获取节点文本信息并修改保存全部的内容,包括:高手救我~~~TreeCtrl中如何获取节点文本信息并修改保存、如何获取一个AlertDialog中的EditText中输入的内容、MFC获取控件文本和显示控件文本谢谢~~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)