CListBox派生类不显示数据

ghy_2010 2010-10-26 12:51:51
CMyListBox::CListBox

CMyListBox::OnCreate()
{
this->AddString("aaaaaa");
this->AddString("bbbbbb");
}

CMainDlg::OnInitDialog()
{
......
m_lst.Create(WS_CHILD, rc, this, IDC_LIST); // m_lst在头文件中定义CMyListBox m_lst;
......
this->GetDlgItem(IDC_LIST)->MoveWindow(620, 10, 365, 550);
......
}

CMainDlg::OnPaint()
{
......
m_lst.ShowWindow(SW_SHOW)
......
}

程序运行后,列表框中啥也没有,咋回事啊!
...全文
73 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wltg2001 2010-10-26
  • 打赏
  • 举报
回复
在OnCreate中用this->AddString("aaaaaa");可能不行,你改在OnInitDialog中加吧
ghy_2010 2010-10-26
  • 打赏
  • 举报
回复
自己搞定:

CMainDlg::OnInitDialog()
{
......
m_lst.Create(WS_CHILD, rc, this, IDC_LIST); // m_lst在头文件中定义CMyListBox m_lst;
......
m_lst.GetDlgItem(IDC_LIST)->MoveWindow(620, 10, 365, 550);
......
}

散分啦!
ghy_2010 2010-10-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wltg2001 的回复:]

在OnCreate中用this->AddString("aaaaaa");可能不行,你改在OnInitDialog中加吧
[/Quote]

可是CListBox没有OnInitDialog呀!
Eleven 2010-10-26
  • 打赏
  • 举报
回复
在OnInitDialog中写这样就已应该可以了
CRect rc(0, 0, 100, 200);
#define IDC_LIST 0x11
m_lst.Create(WS_CHILD|WS_VISIBLE|WS_BORDER, rc, this, IDC_LIST);

OnPaint函数中那句去掉
Eleven 2010-10-26
  • 打赏
  • 举报
回复
this->GetDlgItem(IDC_LIST)->MoveWindow(620, 10, 365, 550);
这个CRect区域不对吧

另外OnPaint中的m_lst.ShowWindow(SW_SHOW);去掉

m_lst.Create(WS_CHILD, rc, this, IDC_LIST);
->
m_lst.Create(WS_CHILD|WS_VISIBLE|WS_BORDER, rc, this, IDC_LIST);
同时看看你的rc指定的区域是否正确

15,979

社区成员

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

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