Как получить текст из List Control

Как скопировать все данные List Control (в данном случае все они CStrings) в clipboard? В моём приложении необходимо, чтобы все данные из List Control можно было скопировать в clipboard, чтобы потом пользователь мог вставить их куда-нибудь ещё.

Следующий код делает то, что нужно:

CString clipboard_data ;
introws ;
intcolumns ;
CStringitem ;

rows = m_ListControl.GetItemCount() ;
columns = m_ListControl.GetHeaderCtrl()->GetItemCount() ;

for (int j = 0 ; j < rows ; j++)
{
for (k = 0 ; k < columns ; k++)
{
if (k > 0)
clipboard_data += "\t" ; //
табуляция
item = m_ListControl.GetItemText(j, k) ;
clipboard_data += item ;
}
clipboard_data += "\r\n" ; //
конец строки
}


//
Теперь данные можно скопировать в буфер обмена
if (OpenClipboard())
{
HGLOBALhandle ;
char*pntr ;

handle = ::GlobalAlloc(GHND, clipboard_data.GetLength() + 1) ;
pntr = (char *)::GlobalLock(handle) ;
strcpy(pntr, clipboard_data) ;
::GlobalUnlock(handle) ;
EmptyClipboard() ;
SetClipboardData(CF_TEXT, handle);
CloseClipboard();
}
 
« Предыдущая статья   Следующая статья »