首页 > 代码库 > CListBox的一个改写类(VC6添加文件的效果)
CListBox的一个改写类(VC6添加文件的效果)
编写一个类似VC6添加文件,单击则动态显示一个Edit编辑框与一个Button。
1.新建一个类(如CMyListBox),继承自CListBox
2.头文件中定义Edit与CButton变量
CEdit m_edit;
CButton m_btn;
3.定义一个初始化函数,供对话框调用。
void Init()
{
m_edit.Create(...);
// 此处可以设置Edit的字体。 如何获取? GetStockObject(DEFAULT_GUI_FONT)
// 设置字体方法。 1.python测试项中的方法。 2.李维定的方法 3.richEdit中的方法
m_btn.Create(...);
}
4.重载OnLButtonDown 与 OnLbnSelchange 函数
void CMyListBox::OnLButtonDown(UINT nFlags, CPoint point)
{
// 1.GetCurSel 是否有效,无效则让edit与Button隐藏。为什么一直为-1?
// 2.GetCount 判断一共有多少个.判断是哪行矩形框内。 GetItemRect
// 3.添加动态按钮的响应函数(弹出选择文件夹对话框)。自己手动添加edit与btn的ID,
// #define MY_EDIT 10001
// #define MY_BUTTON 10001
// afx_msg void OnMyBtnClick(); // 手动添加响应。
// 4. 通过按钮获取到路径,显示再Edit控件上.
// 5. 更新edit与btn的位置。 MoveWindow
// 何时更新数据?
}
void CMyListBox::OnLbnSelchange()
{
// 需要做些什么呢?
}
5. 右键可以弹出删除这一菜单。当右键点击空白地方时,删除菜单项不使能。
// 代完成: 进度条。itunes编辑框的问题。
CListBox的一个改写类(VC6添加文件的效果)