Как получить текст из 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(); }
|