MFC LISTBOX使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC LISTBOX使用相关的知识,希望对你有一定的参考价值。

我对LISTBOX完全白。。。
我现在有变量SCtring A=“fdasfD";
如何在listbox的界面输出出来
详细一点~~~谢谢
的确编译过了...但是LISTBOX的窗口上。。。并没有显示A的值啊

生成一个CListBox控件变量,m_listbox

通过m_listbox插入数据,m_listbox.AddString(A);

这样就可以了 

我在OnInitDialog函数末尾增加以下代码,可以正常显示的。

CString A="fdasfD";

m_listbox.AddString(A);

return TRUE;  // return TRUE  unless you set the focus to a control

参考技术A 你是不是还没建立对话框就引用了这句代码了?光有m_Dlg这个对话框类变量不等于对话框就存在了,还要m_Dlg.DoModal()或者非模态方式创建对话框以后,m_List控件才真正创建,才可以使用,否则只是一个变量而已.

如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
参考技术B ((CListBox*)GetDlgItem(IDC_LIST1))->AddString(A); //IDC_LIST1根据自己的定义修改

将 ListBox 复制到剪贴板,返回载体未保存

【中文标题】将 ListBox 复制到剪贴板,返回载体未保存【英文标题】:Copy ListBox to Clipboard, return carrier not conserved 【发布时间】:2013-11-11 15:43:06 【问题描述】:

在使用 MFC 的 C++ 应用程序中,我希望能够将整个 CListBox 内容复制到剪贴板。

我发现了一个复制内容的功能,但是返回的载体没有保存。 我用 HexEditor 看,它似乎是 $0A 而不是 $0D&$0A。

这是我的代码:

CListBox * myListBox = (CListBox *)GetDlgItem(IDC_LIST_RESULT);
CString sContents = _T("");
CString temp = _T("");
int NumberOfSelections = 0;

NumberOfSelections = myListBox->GetCount();
for(int Selection = 0; Selection <= NumberOfSelections-1; Selection++)

    myListBox->GetText(Selection, temp);
    sContents += temp;
    sContents +="\n";


if (OpenClipboard())

    HGLOBAL clipbuffer;
    char * buffer;

    if (EmptyClipboard())
    
        clipbuffer = GlobalAlloc(GMEM_DDESHARE, sContents.GetLength() + 1);
        buffer = (char*)GlobalLock(clipbuffer);
        CStringA ansiString(sContents); 
        size_t cbString = strlen(ansiString) + 1;
        strcpy_s(buffer, cbString, ansiString);
        GlobalUnlock(clipbuffer);

        if (SetClipboardData(CF_TEXT, clipbuffer) == NULL)
        
            CString msg;
            msg.Format(_T("Unable to set Clipboard data, error: %d"), GetLastError());
            AfxMessageBox(msg);
        
        else
            AfxMessageBox(_T("Successfully copied selected laps to clipboard"));
    
    else
        AfxMessageBox(_T("Unable to empty Clipboard"));
    CloseClipboard();

else
AfxMessageBox(_T("Unable to open Clipboard"));
// TODO: ajoutez ici le code de votre gestionnaire de notification de contrôle

我在 Visual Studio 2013 中使用 unicode 配置。

有人有什么想法吗?

非常感谢,

最好的问候,

尼克斯

【问题讨论】:

【参考方案1】:

只有一个\n,因为这是您在剪贴板中输入的内容。

sContents +="\n";

应该是

sContents +="\r\n";

【讨论】:

以上是关于MFC LISTBOX使用的主要内容,如果未能解决你的问题,请参考以下文章

mfc listbox 怎么输入文字

dskinlite(uieasy mfc界面库)使用记录4:listbox测试

MFC中ListBox如何实时显示要输入的数据?

MFC 怎么清空listbox内的全部内容?

猎豹MFC--下拉框ComboBox 列表框ListBox

MFC (C++):如何按设计设置 ListBox 的宽度?