BOOL CClipFun::Execute()
{
m_hOldClipViewerWnd = ::SetClipboardViewer(m_hWnd);//跟踪消息
return TRUE;
}LRESULT CClipFun::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if (message == WM_DRAWCLIPBOARD)
{
OnDrawClip();//响应消息
return TRUE;
}
return FALSE;
}//得到剪贴版文字内容
void CClipFun::OnDrawClip()
{
if (m_bFirst)
{
m_bFirst = FALSE;
return;
}
HGLOBAL hglbCopy;
CString strText;
try
{
::OpenClipboard(m_hWnd);
if (::IsClipboardFormatAvailable(CF_TEXT))
{
hglbCopy = ::GetClipboardData(CF_TEXT);
strText = (LPTSTR)::GlobalLock(hglbCopy);
::GlobalUnlock(hglbCopy);
}
}
catch(...)
{
::CloseClipboard();
}
::CloseClipboard(); if (m_infClip.GetSize() > 0)
{
if (m_infClip.GetClipText(0).Compare(strText) == 0)
return;
}
CClip clip;
clip.SetText(strText);
clip.SetTitle(CClip::GetTitleFromText(strText));
m_infClip.InsertAt(0, clip);
if (m_dlgListClip.m_hWnd && m_dlgListClip.IsWindowVisible())
{
ShowMore();
}
}以上代码,是从我的程序里摘出来的。
{
m_hOldClipViewerWnd = ::SetClipboardViewer(m_hWnd);//跟踪消息
return TRUE;
}LRESULT CClipFun::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if (message == WM_DRAWCLIPBOARD)
{
OnDrawClip();//响应消息
return TRUE;
}
return FALSE;
}//得到剪贴版文字内容
void CClipFun::OnDrawClip()
{
if (m_bFirst)
{
m_bFirst = FALSE;
return;
}
HGLOBAL hglbCopy;
CString strText;
try
{
::OpenClipboard(m_hWnd);
if (::IsClipboardFormatAvailable(CF_TEXT))
{
hglbCopy = ::GetClipboardData(CF_TEXT);
strText = (LPTSTR)::GlobalLock(hglbCopy);
::GlobalUnlock(hglbCopy);
}
}
catch(...)
{
::CloseClipboard();
}
::CloseClipboard(); if (m_infClip.GetSize() > 0)
{
if (m_infClip.GetClipText(0).Compare(strText) == 0)
return;
}
CClip clip;
clip.SetText(strText);
clip.SetTitle(CClip::GetTitleFromText(strText));
m_infClip.InsertAt(0, clip);
if (m_dlgListClip.m_hWnd && m_dlgListClip.IsWindowVisible())
{
ShowMore();
}
}以上代码,是从我的程序里摘出来的。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货