对话框类CMyDlg上生成CListCtrl控件,并创建与控件关联的该类的公有变量m_ListCtrl;然后再另外一个类CMyOther中给控件插入值,做如下调用
CMyOther
{ CMyDlg dlg;
CString s="hello";
dlg.m_ListCtrl.SetItemText(0,0,s) ;
}
编译无误,运行时会出现Debug Asseration failed...对话框,请教为什么,如何修改
CMyOther
{ CMyDlg dlg;
CString s="hello";
dlg.m_ListCtrl.SetItemText(0,0,s) ;
}
编译无误,运行时会出现Debug Asseration failed...对话框,请教为什么,如何修改
解决方案 »
- 继续菜单不能变灰!!
- 向builder版学习:提倡:把你认为有用的代码放进来,大家共享。
- 请问如何在MSDN网站中找到一个win32 api 的详细说明,比如PeekMessage?
- gif或者png或者jpg图片转BMP图片,有类似库开发吗?或者接口,都行了!
- 发送接收消息
- 回车键用二进制和ASCII码怎么表示?是'/r'吗?还是'/n'?
- nnd~~~~中木马了,大家来帮忙
- error LNK2019: 无法解析的外部符号 "public: __thiscall CScrollView
- VC中select * from 表名,表名是变化的该怎么实现
- 急!我想在服务程序中使用findwindow(也就是 session0 与session1)进行通讯,如何实现
- [求助]关于自动显示变量类成员
- 哪位能给一个RegEnumValue()函数的例子,偶试了n遍总是出错
dlg.m_ListCtrl.SetItemText(0,0,s) ;
那你又如何能操作上面的控件!解决的方法如:
CMyDlg有成员变量: CStringList m_strlist;
在CMyDlg OnInitialDialog中 将m_strlist填充到m_ListCtrl中!
那么:
CMyDlg dlg;
dlg.m_strlist.Add(...)
dlg.DoModal();
也可在dlg.DoModal()之前利用PostMessage(...)
CString s="hello";
dlg.m_ListCtrl.SetItemText(0,0,s);
就这样对话框弹出来了吗?
>dlg.m_ListCtrl.SetItemText(0,0,s) ;
>那你又如何能操作上面的控件!
ListCtrl还没成型,可放到OnInitDialog中处理
现在,在我另外自己定义的一个类中,完成一些操作后,需要写入CListCtrl中一些值,因此就是我的问题,在另外一个类中 写入CListCtrl,才需要引用关联变量m_ListCtrl。而该变量是定义在CMyDlg类里的;所以才有我上面的问题;
多谢各位分析,只是我接触vc时间不长,因此再请详细指点一下
CMyDlg dlg;
CString s="hello";
dlg.m_ListCtrl.SetItemText(0,0,s);获取已弹出的CMyDlg类窗口的句柄(指针也行),然后通过发送消息来处理。
或者是CMyDlg类对象的指针,直截pMyDlg->m_ListCtrl.SetItemText(0,0,s);指针或句柄怎么取得就看你怎么安排了。
CString s="hello";
CListCtrl* list;
list=(CListCtrl *)GetDlgItem(IDC_LIST1);//IDC_LIST1是列表控件的ID
list->SetItemText(0,4,s);
运行后依然会出现Debug Assertion failed。。
class CMainFrame
{
...
protected:
CMyDlg m_pMyDlg;//构造函数中设为NULL;
public:
CMyDlg *GetMyDlg(){ return m_pMyDlg; }
...
}
"对话框是CMainFrame下一个按钮定义了COMMAND弹出的"
这样弹出:
OnMyMsg(..)
{
if (!m_pMyDlg)
{
m_pMyDlg = new CMyDlg;
m_pMyDlg->DoModal();
delete m_pMyDlg;
m_pMyDlg = NULL;
}
}那么你可以在任何类中获取指向CMyDlg的指针:
CMyDlg *pMyDlg = ((CMainFrame*)AfxGetMainWnd())->GetMyDlg();
if (pMyDlg)
{
//process
}
...
protected:
CMyDlg* m_pMyDlg;//构造函数中设为NULL;
...
我按照你说的改了OnMyMsg(),可以不会弹出对话框了,而且m_pMyDlg->DoModal,时没有智能提示出
DoModal阿,thanks for ur reply!