我在一个窗体上加上若干个控件,执行后 当窗体最大化时,控件的位置没有变,我想要控件的显示位置和比例随窗体的大小而变,该怎么办?
还有一个问题是,我想通过COMBO BOX中选择一项在LIST CONTROL控件里分类相应的显示信息,显示的信息在分类类表的下面,我现在自己搞的,它到分类边界不换行, 我想要它换行,该怎么办! 在线等,在线结贴
还有一个问题是,我想通过COMBO BOX中选择一项在LIST CONTROL控件里分类相应的显示信息,显示的信息在分类类表的下面,我现在自己搞的,它到分类边界不换行, 我想要它换行,该怎么办! 在线等,在线结贴
combo box在选中时有消息,具体是什么我忘了,好象SELCHANGE什么的,响应这个消息,对你的LIST CONTROL做操作就好了!
我想要的是,假如在como box中选择一个student项 我要在list control建立一个student项并且在student下面显示相应的信息,如果再选择relation项,便要在下面建立一个relation项并且在下面显示相应的信息, 并且显示的信息一行的宽度等于建立的列的宽度相同,如果字串的长度大于,列的宽度则换行
第一个问题就像loseme915(郁闷) 说的那样解决.
第二个问题我想只有以下解决方法:
从CListCtrl派生出自己的子类.
并重载DrawItem虚函数.
自己绘制列表项,控制文本的换行.
不过就是太麻烦了.
第二个是 我怎么才能在一串字符中找出我要找的内容 然后在LIST CONTROL中显示出来
比如有这么一串字符 Current Calls: 0 Active: 0 From Neighbor: 0 From Parent: 0
我要在list control建立一个Current Call的列 把结果0 显示在下面
如果你的字符串有固定规格的话,比如这个.
Current Calls: 0 Active: 0 From Neighbor: 0 From Parent: 0--------------------------------------------------------------
那么:char * chmsg="Current Calls: 256 Active: 444 From Neighbor: 3245 From Parent: 89741";
int i1=0,i2=0,i3=0,i4=0;
sscanf(chmsg,"Current Calls: %d Active: %d From Neighbor: %d From Parent: %d",&i1,&i2,&i3,&i4); m_listview.DeleteAllItems();
while(m_listview.DeleteColumn(0))
{
}
m_listview.InsertColumn(0,"Current Calls",LVCFMT_LEFT,100);
m_listview.InsertColumn(0,"Active",LVCFMT_LEFT,100);
m_listview.InsertColumn(0,"From Neighbor",LVCFMT_LEFT,100);
m_listview.InsertColumn(0,"From Parent",LVCFMT_LEFT,100); char ch[256]; m_listview.InsertItem(0,itoa(i1,ch,10));
m_listview.SetItemText(0,1,itoa(i2,ch,10));
m_listview.SetItemText(0,2,itoa(i3,ch,10));
m_listview.SetItemText(0,3,itoa(i4,ch,10));
然后用
LPRECT rect;
rect=new tagRECT;
GetClientRect(rect);来获得窗口的位置。
再用控件的成员函数MoveWindow()来调整控件的大小和位置。
Active From Neighbor From Parent这些列 来显示相应的结果
就要先把它们分开.
才可以按照我上面说的做.
如果是单独的格式,每一个字符串就只有"Current Calls: 0 Active: 0 From Neighbor: 0 From Parent: 0"
直接修改一下就可以了.
或许你的问题比较复杂.这样子讲不清楚.