如果利用CListBox实现CCheckListBox?(译)

实现步骤如下:

 

1. 在对话框上添加一个CListBox控件,修改其属性:

  •     Owner Draw = Fixed
  •     Has Strings设置checked;

2. 利用class wizard添加一个变量:

 CListBox  m_ctlCheckList;


将其修改为:
CCheckListBox m_ctlCheckList; 3. 将下面一句从DoDataExchange(CDataExchange* pDX)宏中称到宏外:
DDX_Control(pDX, IDC_LIST1, m_ctlCheckList);
4. 开OnInitDialog上添加如下:
m_ctlCheckList.SetCheckStyle(BS_CHECKBOX);
5. 添加LBN_SELCHANGE事件


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是实现MFC对话框的CListbox的文本复制的示例代码: 1. 首先,在对话框类的头文件中添以下成员变量: ```cpp CListBox m_listbox; ``` 2. 在对话框类的OnInitDialog()函数中添以下代码: ```cpp // 将 CListBox 控件与对应的对话框资源中的控件关联 m_listbox.SubclassDlgItem(IDC_LISTBOX, this); ``` 3. 添以下函数来实现复制文本的功能: ```cpp void CopyListBoxText() { CString strText; int nCount = m_listbox.GetCount(); for (int i = 0; i < nCount; i++) { m_listbox.GetText(i, strText); if (!strText.IsEmpty()) { // 将文本添到剪贴板 if (OpenClipboard()) { EmptyClipboard(); HGLOBAL hClipboardData = GlobalAlloc(GMEM_DDESHARE, (strText.GetLength() + 1) * sizeof(TCHAR)); TCHAR* pchData = (TCHAR*)GlobalLock(hClipboardData); _tcscpy_s(pchData, strText.GetLength() + 1, strText); GlobalUnlock(hClipboardData); SetClipboardData(CF_UNICODETEXT, hClipboardData); CloseClipboard(); } break; } } } ``` 4. 在对话框类的头文件中添以下声明: ```cpp afx_msg void OnCopyText(); ``` 5. 在对话框类的消息映射中添以下代码: ```cpp ON_COMMAND(ID_COPY_TEXT, OnCopyText) ``` 6. 在对话框类的实现文件中添以下代码: ```cpp void CMyDialog::OnCopyText() { CopyListBoxText(); } ``` 7. 在对话框的资源文件中添一个菜单项,ID为ID_COPY_TEXT,文本为“复制”。 现在,当用户在列表框中选择一项并单击“复制”菜单项时,将复制该项的文本到剪贴板中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值