Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Toto téma popisuje, jak používat standardní Windows API schránky aplikace MFC.
Většina aplikací pro systém Windows podporuje vyjmutí nebo kopírování dat do schránky systému Windows a vkládání dat ze schránky.Formáty schránky data aplikací liší.Podporuje pouze omezený počet formáty schránky pro omezený počet tříd.Obvykle provede příkazy související schránky – Vyjmout, kopírovat a vložit – zobrazení v nabídce Úpravy.Knihovna tříd definuje ID příkazu pro tyto příkazy: ID_EDIT_CUT, ID_EDIT_COPY, a ID_EDIT_PASTE.Jejich výzvy řádek zpráv také definována.
Příkazy v rámci zprávy a vysvětluje, jak zpracovat mapováním příkaz nabídky na funkci zpracování příkazů nabídek v aplikaci.Jako aplikace nedefinuje obslužnou rutinu funkce příkazů schránky v nabídce Úpravy, zůstanou zakázané.Chcete-li napsat obslužné rutiny funkce pro příkazy Vyjmout a kopírovat provedení výběru v aplikaci.Chcete-li napsat funkci zpracování příkazu Vložit dotaz do schránky, zda obsahuje data ve formátu, který aplikace může přijmout.Například chcete-li příkaz Kopírovat můžete vytvořit obslužnou rutinu přibližně takto:
void CMyListView::OnEditCopy()
{
if ( !OpenClipboard() )
{
AfxMessageBox( _T("Cannot open the Clipboard") );
return;
}
// Remove the current Clipboard contents
if( !EmptyClipboard() )
{
AfxMessageBox( _T("Cannot empty the Clipboard") );
return;
}
// Get the currently selected data
HGLOBAL hGlob = GlobalAlloc(GMEM_FIXED, 64);
strcpy_s((char*)hGlob, 64, "Current selection\r\n");
// For the appropriate data formats...
if ( ::SetClipboardData( CF_TEXT, hGlob ) == NULL )
{
CString msg;
msg.Format(_T("Unable to set Clipboard data, error: %d"), GetLastError());
AfxMessageBox( msg );
CloseClipboard();
GlobalFree(hGlob);
return;
}
CloseClipboard();
}
Jsou příkazy Vyjmout, kopírovat a vložit pouze v určitých kontextech smysluplný.Příkazy Vyjmout a kopírovat by být povolena pouze v případě, že něco vybrány a příkaz Vložit pouze v případě něco do schránky.Toto chování můžete zadat definováním funkce zpracování aktualizace povolit nebo zakázat tyto příkazy v závislosti na kontextu.Další informace naleznete v jak aktualizovat objekty uživatelského rozhraní.
Knihovny Microsoft Foundation Class podporují schránky s úpravy textu CEdit a CEditView tříd.Třídy OLE rovněž zjednodušit prováděcí schránky zahrnující položky OLE.Další informace o třídách OLE, viz schránky: pomocí mechanismu schránky OLE.
Ostatní prováděcí úpravy nabídky příkazy, například zpět (ID_EDIT_UNDO) a znovu (ID_EDIT_REDO), zůstane vám.Pokud aplikace nepodporuje tyto příkazy, můžete je snadno odstranit ze souboru prostředků pomocí prostředku editorů jazyka Visual C++.