• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

被困扰已久的问题

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创建后就处在激活状态而且能显示出来呢?
...全文
129 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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
神啊,救救我吧!这个问题怎么解决呢?
回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-03-31 09:57
社区公告

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