被困扰已久的问题

loepin 2008-03-31 09:57:41
我在一个单文档程序中动态添加了一个CListCtrl控件ID为m_ListCtrl,是通过右键菜单添加的,添加之后m_ListCtrl不是处在激活状态,我使用了m_ListCtrl.BringWindowToTop()使它获得了焦点,但m_ListCtrl却无法显示,如果不用m_ListCtrl.BringWindowToTop(),m_ListCtrl可以显示,但不是处在激活状态。

如果能够使m_ListCtrl创建后就处在激活状态而且能显示出来呢?
...全文
196 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
loepin 2008-04-08
  • 打赏
  • 举报
回复
说得乱七八糟!
jwb97148148 2008-04-03
  • 打赏
  • 举报
回复
楼上说的对啊,自己还得加强啊
菜牛 2008-04-03
  • 打赏
  • 举报
回复
代码乱七八糟,变量乱七八糟,逻辑乱七八糟,还满嘴脏话。楼主需要好好学学基础和为人。

单文档客户区被视图占据,你要么替换视图,或者调整视图大小,给你的控件留出空间。其实最一般的是在视图中创建;更简单的是从CListView继承视图类。另外,不要因为你自己说不清楚搞不明白来怪别人。
loepin 2008-04-02
  • 打赏
  • 举报
回复
天啊。。。啥整的这是。
lzf8977 2008-04-01
  • 打赏
  • 举报
回复
父窗口出问题了?

查看一下你的窗口的级别关系,看正不正确,是不是有同级窗口存在相同区域?即两个可见窗口出现了重叠。
AndyXia 2008-03-31
  • 打赏
  • 举报
回复
这应该是个界面绘制的问题。

在OnPaint中调控件的重绘试试?
loepin 2008-03-31
  • 打赏
  • 举报
回复
单击后才会一个一个显示出来
loepin 2008-03-31
  • 打赏
  • 举报
回复
CRect rect;


if(mm_ListCtrl)
{
mm_ListCtrl.DestroyWindow();
}
CWnd *CFrmWnd=AfxGetMainWnd();
CFrmWnd->SetFocus();
CFrmWnd->GetClientRect(rect);
rect.top+=3;
CStatic mm_Static;

mm_ListCtrl.Create(WS_CHILD|WS_VISIBLE|WS_BORDER|LVS_REPORT,rect,CFrmWnd,1);

CFrmWnd->GetClientRect(rect);

//mm_ListCtrl.SetBkColor(RGB(177,151,240));
mm_ListCtrl.SetTextColor(RGB(0,0,0));
//mm_ListCtrl.SetTextBkColor(RGB(177,151,240));
mm_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);
mm_ListCtrl.InsertColumn(0,_T("右键标准编号"),LVCFMT_LEFT,100);
mm_ListCtrl.InsertColumn(1,_T("右键标准名称"),LVCFMT_LEFT,100);
mm_ListCtrl.BringWindowToTop();

CString str;
for(int i=0;i<4;i++)
{
str.Format("编号%d",i+1);
mm_ListCtrl.InsertItem(i,str);
str.Format("房间%d",i+1);
mm_ListCtrl.SetItemText(i,1,str);
}

以上是我的代码,运行后mm_ListCtrl无法显示
菜牛 2008-03-31
  • 打赏
  • 举报
回复
应该可以的,看看你的代码有何特殊之处。当然,不需要BringWindowToTop。
loepin 2008-03-31
  • 打赏
  • 举报
回复
说一下,我的listctrl是通过右键菜单建立并绘制在视图里的,我想在绘制listctrl后使之显示出来并能处在激活状态。
我现在的程序通过右键菜单可以显示listctrl,但是它没被激活,因为它的表头无法通过鼠标拉动来改变其长度。
wqvbjhc 2008-03-31
  • 打赏
  • 举报
回复
mm_ListCtrl.ShowWindow (SW_SHOW);
loepin 2008-03-31
  • 打赏
  • 举报
回复
都不行。。。
ddzz2001 2008-03-31
  • 打赏
  • 举报
回复
SetFocus()好象可以,你试下
tiger波波 2008-03-31
  • 打赏
  • 举报
回复
mm_ListCtrl.BringWindowToTop();
改为:
mm_ListCtrl.ShowWindow(SW_SHOW);
loepin 2008-03-31
  • 打赏
  • 举报
回复
神啊,救救我吧!这个问题怎么解决呢?

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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