vi->SetDlgItemText(IDC_text_part,str);
vi是CFormView派生类的指针,str是CListCtrl派生类的值,想把它传到CFormView派生类的文本框里,编译没错,运行错了。如何解决呢?
8 个解决方案
#1
CWnd *pWnd = vi->GetDlgItem(IDC_text_part);
if(pWnd != NULL)
{
CEdit *pEdit = (CEdit*)pWnd;
pEdit->SetWindowText(str);
}
if(pWnd != NULL)
{
CEdit *pEdit = (CEdit*)pWnd;
pEdit->SetWindowText(str);
}
#2
这样运行时还是有错,都不懂是错在哪
#3
我在别的类用vi->GetDlgItem(IDC_text_part);
IDC_text_part是在别的类上的。有问题吗
IDC_text_part是在别的类上的。有问题吗
#4
你的vi指针有效吗?
#5
应该用IDC_text_part所属的form类来调用GetDlgItem。
#6
试试这样
CMainFrame *pMain=(CMainFrame*) AfxGetApp()->m_pMainWnd;
CChiGramView *pView=( CChiGramView * ) pMain-> GetActiveView();
((CEdit *)(pView->GetDlgItem(IDC_text_part)))->SetWindowText(str);;//
CMainFrame *pMain=(CMainFrame*) AfxGetApp()->m_pMainWnd;
CChiGramView *pView=( CChiGramView * ) pMain-> GetActiveView();
((CEdit *)(pView->GetDlgItem(IDC_text_part)))->SetWindowText(str);;//
#7
高手谢谢,这样就对了。不过能解释下为什么要这样才可以吗
#8
你在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);;//
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);;//
#1
CWnd *pWnd = vi->GetDlgItem(IDC_text_part);
if(pWnd != NULL)
{
CEdit *pEdit = (CEdit*)pWnd;
pEdit->SetWindowText(str);
}
if(pWnd != NULL)
{
CEdit *pEdit = (CEdit*)pWnd;
pEdit->SetWindowText(str);
}
#2
这样运行时还是有错,都不懂是错在哪
#3
我在别的类用vi->GetDlgItem(IDC_text_part);
IDC_text_part是在别的类上的。有问题吗
IDC_text_part是在别的类上的。有问题吗
#4
你的vi指针有效吗?
#5
应该用IDC_text_part所属的form类来调用GetDlgItem。
#6
试试这样
CMainFrame *pMain=(CMainFrame*) AfxGetApp()->m_pMainWnd;
CChiGramView *pView=( CChiGramView * ) pMain-> GetActiveView();
((CEdit *)(pView->GetDlgItem(IDC_text_part)))->SetWindowText(str);;//
CMainFrame *pMain=(CMainFrame*) AfxGetApp()->m_pMainWnd;
CChiGramView *pView=( CChiGramView * ) pMain-> GetActiveView();
((CEdit *)(pView->GetDlgItem(IDC_text_part)))->SetWindowText(str);;//
#7
高手谢谢,这样就对了。不过能解释下为什么要这样才可以吗
#8
你在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);;//
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);;//