Clipboard
3 отговора
124 прегледа
Clipboard
Значи...
имам една програмка, която искам да взима съдържанието на клипборда, да маже по него и накрая да възстанови изходното му състояние. При мазането и възстановяването всичко си работи, но когато се опитам да взема съдържанието, се получават странни неща:
ако в клипборда е имало текст, всичко си работи нормално (оттук и ресторването). ако обаче има някакъв битмап, започват да се случват разни работи - понякога
LocalSize връща 0, друг път EnumClipboardFormats връщат някакви безумни стойности, които не съществуват в никоя документация (може и да са някакви допълнително регистрирани), а не смея да пробвам с wave.
някой има ли идея на какво се дължи това и евентуално как да се оправи
стой та гледай
имам една програмка, която искам да взима съдържанието на клипборда, да маже по него и накрая да възстанови изходното му състояние. При мазането и възстановяването всичко си работи, но когато се опитам да взема съдържанието, се получават странни неща:
::OpenClipboard(NULL);
UINT nFormat = 0;
nFormat = EnumClipboardFormats(nFormat);
if (!nFormat)
{
return;
}
m_nClipboardFormat = nFormat;
HANDLE hClipboardValue = ::GetClipboardData(nFormat);
if (!hClipboardValue)
{
return;
}
UINT nSize = LocalSize(hClipboardValue);
m_hClipboardData = LocalAlloc(0, nSize);
if (NULL != m_hClipboardData)
memcpy(m_hClipboardData, hClipboardValue, nSize);
::CloseClipboard();
ако в клипборда е имало текст, всичко си работи нормално (оттук и ресторването). ако обаче има някакъв битмап, започват да се случват разни работи - понякога
LocalSize връща 0, друг път EnumClipboardFormats връщат някакви безумни стойности, които не съществуват в никоя документация (може и да са някакви допълнително регистрирани), а не смея да пробвам с wave.
някой има ли идея на какво се дължи това и евентуално как да се оправи
стой та гледай
Re: Clipboard
По рано бях писал една програма която в част от кода си правеше следното:
1. Взима съдържанието на клипборда /независимо какво е/.
2. Записва нещо друго в клипборда.
3.По - късно връща старото съдържание без никаква промяна.
Спомням си че като правех тази част първо се мъчех с обикновенните клипборд функции, но имах доста проблеми /подобни на твоите/.
Накрая смених всичко с използване на OLE клипборда и всичко си дойде на
мястото.
Ако искаш за справка мога да ти пратя тази част от кода/много е малка/.
Ползва се MFC, но доколкото знам си работила с нея.
Поздрави от Бургас.
1. Взима съдържанието на клипборда /независимо какво е/.
2. Записва нещо друго в клипборда.
3.По - късно връща старото съдържание без никаква промяна.
Спомням си че като правех тази част първо се мъчех с обикновенните клипборд функции, но имах доста проблеми /подобни на твоите/.
Накрая смених всичко с използване на OLE клипборда и всичко си дойде на
мястото.
Ако искаш за справка мога да ти пратя тази част от кода/много е малка/.
Ползва се MFC, но доколкото знам си работила с нея.
Поздрави от Бургас.
Re: Clipboard
Извинявай, че не ти отговорих веднага, но още не съм свикнал с новите
начини за комуникация.
Даже да си призная, като реша да пратя на някой съобщение, все още
първото нещо за което се сещам е да чукам по тръбите на парното.
Изпратих ти отговор.
Поздрави от Бургас.
начини за комуникация.
Даже да си призная, като реша да пратя на някой съобщение, все още
първото нещо за което се сещам е да чукам по тръбите на парното.
Изпратих ти отговор.
Поздрави от Бургас.
Редактирано от pbourgas на