我建立一个单文档工程,动态的创建一个CListCtrl控件,在程序中加入如下代码
void CYyz2::OnInitialUpdate() 
{
CListView::OnInitialUpdate();
CXuexiApp *pApp=(CXuexiApp*)AfxGetApp();
this->GetListCtrl().SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES|LVS_EX_TRACKSELECT);
CRect rect;
this->GetListCtrl().GetWindowRect(&rect);
char *colText[]={"sss", "ddd"," fff"};
char itemText[20];
sprintf(itemText,"%s",pApp->ooo);
LV_COLUMN lvc;
lvc.mask = LVCF_TEXT|LVCF_WIDTH|LVCF_SUBITEM|LVCF_FMT;
lvc.fmt = LVCFMT_LEFT;
lvc.cx = rect.Width()/3;
    for (int i=0;i<3;i++)
{
lvc.iSubItem = i;
lvc.pszText= colText[i];
this->GetListCtrl().InsertColumn(i,&lvc); 
}
LV_ITEM lvi;
lvi.mask = LVIF_TEXT;
for (i=0;i<5;i++)
{
lvi.iItem = i;
lvi.iSubItem =0;
lvi.cchTextMax = sizeof(itemText)/sizeof(itemText[0]);
lvi.pszText=itemText;
if(this->GetListCtrl().InsertItem(&lvi)==-1);

for(int iSubItem=1;iSubItem<3;iSubItem++)
{
this->GetListCtrl().SetItemText(i,iSubItem,itemText);
}
}
我还创建一个窗体,加入一个CEdit控件,为他创建一个成员变量m_xingming一个命令按钮,在它的单击事件中加入代码
CXuexiApp *pApp=(CXuexiApp*)AfxGetApp();
CString str1;
m_xingming.GetWindowText(str1);
pApp->ooo = str1;
————————————————————————
我的目的是在窗口的控件中输入一些内容,按下单击按钮后,在主窗口的CListCtrl控件显示出来,但是现在CListCtrl没有反应,错在那里,请各位大虾帮帮忙

解决方案 »

  1.   

    pApp->ooo = str1;
    what means?
      

  2.   

    pApp->ooo 中ooo时CXuexiApp里定义的字符型变量
      

  3.   

    单击按钮后,仅仅改变了ooo 的值,并没有写入控件,要刷新主窗口才能显示出来
      

  4.   

    你改变了CListCtrl的值没有更新显示。更新一下就可以了。
      

  5.   

    CXuexiApp *pApp=(CXuexiApp*)AfxGetApp();
    CString str1;
    m_xingming.GetWindowText(str1);
    pApp->ooo = str1;还应该 加入(该窗体需要获得CYyz2 这个view的指针,可以使用获取AfxGetMainWnd() 获得以后再获取)
    假设CYyz2 的指针为 *pView;CListCtrl *pList = pView->GetListCtrl().FromHandle(pView->GetListCtrl().GetSafeHwnd());pList->InsertItem(pList->GetCount(), pApp->ooo);就可以了。
      

  6.   

    怎样获取指针呀,我主窗口是动态切分的,分拉三个窗口,为每个窗口建一个类,CListCtrl放在CYyz2类下