A_Salimi
یک شنبه 02 خرداد 1389, 20:40 عصر
من قصد دارم تا با كد نويسي يك رشته را در كليبرد ذخيره كنم و باز آن را بازيابي كنم.با جستجو در اينترنت چند نمونه كد پيدا كردم كه با آنها مشكل دارم .لطفا راهنمايي بديد.
براي ذخيره در كليبرد:
SetClipboardText(LPCTSTR lpszText, UINT uBuff)
{
HGLOBAL hgText = NULL;
LPTSTR lpszCopy = NULL;
// First open the clipboard
if(!::OpenClipboard(NULL))
return FALSE;
// Empty the clipboard, and make us the owner
if(!EmptyClipboard())
{
::CloseClipboard();
return FALSE;
}
hgText = GlobalAlloc(GMEM_DDESHARE, (uBuff+1) * sizeof(TCHAR));
if (hgText != NULL)
{
// Lock the handle and copy the text to the buffer.
lpszCopy = (TCHAR*)GlobalLock(hgText);
memcpy(lpszCopy, lpszText, uBuff * sizeof(TCHAR));
lpszCopy[uBuff] = (TCHAR) 0;
GlobalUnlock(hgText);
// Set the clipboard text
if(!SetClipboardData(CF_TEXT,hgText))
{
::CloseClipboard();
return FALSE;
}
}
::CloseClipboard();
return TRUE;
}
براي بازيابي از كليبرد:
GetClipboardText(LPTSTR buff, UINT iBuffSize)
{
HANDLE hClip;
char* pszClipboard;
if(::OpenClipboard(NULL)) // Open the clipboard so we can read its contents
{
hClip = GetClipboardData(CF_TEXT); // Get a handle to the clipboad contents
if(hClip == NULL)
{
CloseClipboard();
return FALSE;
}
pszClipboard = (char*)GlobalLock(hClip); // Point pClipboard to the clipboard contents
if(!pszClipboard)
{
GlobalUnlock(hClip);
return FALSE;
}
//LPTSTR st=new TCHAR[255];
//st=buff;
// strncpy((char*)buff,pszClipboard,iBuffSize); // Copy the contents to a local variable
buff[iBuffSize-1] = 0;
GlobalUnlock(hClip); // Release the lock on the clipboard contents
CloseClipboard(); // Close the clipboard.
}
else
{
return FALSE;
}
return TRUE;
{
لطفا توضيح بديد كه :
آيا اين كدها صحيح هستند؟
چرا من نتوانستم در يك پروژه MFC بدرستي از آنها استفاده كنم؟
براي ذخيره در كليبرد:
SetClipboardText(LPCTSTR lpszText, UINT uBuff)
{
HGLOBAL hgText = NULL;
LPTSTR lpszCopy = NULL;
// First open the clipboard
if(!::OpenClipboard(NULL))
return FALSE;
// Empty the clipboard, and make us the owner
if(!EmptyClipboard())
{
::CloseClipboard();
return FALSE;
}
hgText = GlobalAlloc(GMEM_DDESHARE, (uBuff+1) * sizeof(TCHAR));
if (hgText != NULL)
{
// Lock the handle and copy the text to the buffer.
lpszCopy = (TCHAR*)GlobalLock(hgText);
memcpy(lpszCopy, lpszText, uBuff * sizeof(TCHAR));
lpszCopy[uBuff] = (TCHAR) 0;
GlobalUnlock(hgText);
// Set the clipboard text
if(!SetClipboardData(CF_TEXT,hgText))
{
::CloseClipboard();
return FALSE;
}
}
::CloseClipboard();
return TRUE;
}
براي بازيابي از كليبرد:
GetClipboardText(LPTSTR buff, UINT iBuffSize)
{
HANDLE hClip;
char* pszClipboard;
if(::OpenClipboard(NULL)) // Open the clipboard so we can read its contents
{
hClip = GetClipboardData(CF_TEXT); // Get a handle to the clipboad contents
if(hClip == NULL)
{
CloseClipboard();
return FALSE;
}
pszClipboard = (char*)GlobalLock(hClip); // Point pClipboard to the clipboard contents
if(!pszClipboard)
{
GlobalUnlock(hClip);
return FALSE;
}
//LPTSTR st=new TCHAR[255];
//st=buff;
// strncpy((char*)buff,pszClipboard,iBuffSize); // Copy the contents to a local variable
buff[iBuffSize-1] = 0;
GlobalUnlock(hClip); // Release the lock on the clipboard contents
CloseClipboard(); // Close the clipboard.
}
else
{
return FALSE;
}
return TRUE;
{
لطفا توضيح بديد كه :
آيا اين كدها صحيح هستند؟
چرا من نتوانستم در يك پروژه MFC بدرستي از آنها استفاده كنم؟