首页 > 代码库 > 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添加文件的效果)