没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
3页
CListCtrl 控件生成之后,无论你单击还是双击它的单元格,都没有任何反应。如果我们需要像EXCEL那样双击一个单元格后即可编辑该单元格的内容,那 怎么办呢?一个方法就是双击单元格之后,在该单元格的地方生成一个编辑框,然后让输入焦点落在该编辑框上,我们即可对该编辑框进行文字编辑,当输入焦 点从编辑框上消失时(通常是用户在编辑框外的地方单击,就像EXCEL当编辑完一个单元格的内容后用户在单元格外的地方单击一下以示确认输入完毕一样。), 就理解为编辑完毕,然后把编辑框的内容设置为该单元格的内容,最后隐藏或销毁编辑框。
资源推荐
资源详情
资源评论
CListCtrl 控件生成之后,无论你单击还是双击它的单元格,都没有任何反应。如果我们需要像EXCEL那样双击一个单元格后即可编辑该单元格的内容,那
怎么办呢?一个方法就是双击单元格之后,在该单元格的地方生成一个编辑框,然后让输入焦点落在该编辑框上,我们即可对该编辑框进行文字编辑,当输入焦
点从编辑框上消失时(通常是用户在编辑框外的地方单击,就像EXCEL当编辑完一个单元格的内容后用户在单元格外的地方单击一下以示确认输入完毕一样。),
就理解为编辑完毕,然后把编辑框的内容设置为该单元格的内容,最后隐藏或销毁编辑框。
1. 从CListCtrl类继承,新建一个自己的列表框类,在这里我取名为CPage2ListCtrl,下面就要在CPage2ListCtrl 类实现双击单元格编辑功能。上面也已经说到,
双击单元格后要显示一个编辑框,我们把那个编辑框看做是CPage2ListCtrl 类的成员。接下来就要为这个编辑框新建一个从CEdit继承的类,为什么不直接用
CEdit类呢,以后就知道为什么的了。这个从CEdit继承的编辑框类我取名为CListEdit。
2.为CPage2ListCtrl类添加成员变量和函数:
public:
void DisposeEdit(); //这个函数的作用是.....往下看就知道的了。
CListEdit m_edit; //这个就是双击单元格后显示的编辑框。
int row,col; //用来记录双击的单元格是第几行第几列。
3.重写CPage2ListCtrl类的PreSubclassWindow()虚函数,这个函数的作用是什么,这里就不说了,我们要在这个函数里设置CPage2ListCtrl类的基本样式和扩展
样式,还有创建m_edit成员变量的编辑框。
void CPage2ListCtrl::PreSubclassWindow()
{
// TODO: Add your specialized code here and/or call the base class
ModifyStyle(LVS_EDITLABELS,0);
ModifyStyle(0,LVS_REPORT);
ModifyStyle(0,LVS_SHOWSELALWAYS);
SetExtendedStyle(LVS_EX_FLATSB | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_edit.Create(WS_CHILD|WS_CLIPSIBLINGS|WS_EX_TOOLWINDOW|WS_BORDER,
CRect(0,40,10,50),this,1001);
CListCtrl::PreSubclassWindow();
}
4.对CPage2ListCtrl类添加消息处理,对双击事件进行响应,消息名称是WM_LBUTTONDBLCLK。
怎么办呢?一个方法就是双击单元格之后,在该单元格的地方生成一个编辑框,然后让输入焦点落在该编辑框上,我们即可对该编辑框进行文字编辑,当输入焦
点从编辑框上消失时(通常是用户在编辑框外的地方单击,就像EXCEL当编辑完一个单元格的内容后用户在单元格外的地方单击一下以示确认输入完毕一样。),
就理解为编辑完毕,然后把编辑框的内容设置为该单元格的内容,最后隐藏或销毁编辑框。
1. 从CListCtrl类继承,新建一个自己的列表框类,在这里我取名为CPage2ListCtrl,下面就要在CPage2ListCtrl 类实现双击单元格编辑功能。上面也已经说到,
双击单元格后要显示一个编辑框,我们把那个编辑框看做是CPage2ListCtrl 类的成员。接下来就要为这个编辑框新建一个从CEdit继承的类,为什么不直接用
CEdit类呢,以后就知道为什么的了。这个从CEdit继承的编辑框类我取名为CListEdit。
2.为CPage2ListCtrl类添加成员变量和函数:
public:
void DisposeEdit(); //这个函数的作用是.....往下看就知道的了。
CListEdit m_edit; //这个就是双击单元格后显示的编辑框。
int row,col; //用来记录双击的单元格是第几行第几列。
3.重写CPage2ListCtrl类的PreSubclassWindow()虚函数,这个函数的作用是什么,这里就不说了,我们要在这个函数里设置CPage2ListCtrl类的基本样式和扩展
样式,还有创建m_edit成员变量的编辑框。
void CPage2ListCtrl::PreSubclassWindow()
{
// TODO: Add your specialized code here and/or call the base class
ModifyStyle(LVS_EDITLABELS,0);
ModifyStyle(0,LVS_REPORT);
ModifyStyle(0,LVS_SHOWSELALWAYS);
SetExtendedStyle(LVS_EX_FLATSB | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
m_edit.Create(WS_CHILD|WS_CLIPSIBLINGS|WS_EX_TOOLWINDOW|WS_BORDER,
CRect(0,40,10,50),this,1001);
CListCtrl::PreSubclassWindow();
}
4.对CPage2ListCtrl类添加消息处理,对双击事件进行响应,消息名称是WM_LBUTTONDBLCLK。
资源评论
LKMIRACLE
- 粉丝: 4
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功