工程中CFormView类和一个CListCtrl类,头文件问题已经解决,传值问题该怎么解决,

dsh007 2010-09-15 03:25:14
我想把CListCtrl类获取的一个值传到CFormView类上的一个文本框上

vi->SetDlgItemText(IDC_text_part,str);

vi是CFormView派生类的指针,str是CListCtrl派生类的值,想把它传到CFormView派生类的文本框里,编译没错,运行错了。如何解决呢?
...全文
222 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hztj2005 2010-09-17
  • 打赏
  • 举报
回复
你在CListCtrl类中用vi->未必得到了有效的view窗口指针。

CMainFrame *pMain=(CMainFrame*) AfxGetApp()->m_pMainWnd;
CChiGramView *pView=( CChiGramView * ) pMain-> GetActiveView();
这样肯定得到view窗口指针。

pView->GetDlgItem(IDC_text_part)
得到的是CWnd *pWnd
需要(CEdit *)转换才能使用->SetWindowText(str);

((CEdit *)(pView->GetDlgItem(IDC_text_part)))->SetWindowText(str);;//
dsh007 2010-09-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hztj2005 的回复:]
试试这样


CMainFrame *pMain=(CMainFrame*) AfxGetApp()->m_pMainWnd;
CChiGramView *pView=( CChiGramView * ) pMain-> GetActiveView();
((CEdit *)(pView->GetDlgItem(IDC_text_part)))->SetWindo……
[/Quote]


高手谢谢,这样就对了。不过能解释下为什么要这样才可以吗
hztj2005 2010-09-15
  • 打赏
  • 举报
回复
试试这样


CMainFrame *pMain=(CMainFrame*) AfxGetApp()->m_pMainWnd;
CChiGramView *pView=( CChiGramView * ) pMain-> GetActiveView();
((CEdit *)(pView->GetDlgItem(IDC_text_part)))->SetWindowText(str);;//

一名程序员 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dsh007 的回复:]
我在别的类用vi->GetDlgItem(IDC_text_part);
IDC_text_part是在别的类上的。有问题吗
[/Quote]应该用IDC_text_part所属的form类来调用GetDlgItem。
Eleven 2010-09-15
  • 打赏
  • 举报
回复
你的vi指针有效吗?
dsh007 2010-09-15
  • 打赏
  • 举报
回复
我在别的类用vi->GetDlgItem(IDC_text_part);
IDC_text_part是在别的类上的。有问题吗
dsh007 2010-09-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gradual 的回复:]
CWnd *pWnd = vi->GetDlgItem(IDC_text_part);
if(pWnd != NULL)
{
CEdit *pEdit = (CEdit*)pWnd;
pEdit->SetWindowText(str);
}
[/Quote]

这样运行时还是有错,都不懂是错在哪
gradual 2010-09-15
  • 打赏
  • 举报
回复
CWnd *pWnd = vi->GetDlgItem(IDC_text_part);
if(pWnd != NULL)
{
CEdit *pEdit = (CEdit*)pWnd;
pEdit->SetWindowText(str);
}

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧