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();
}
}以上代码,是从我的程序里摘出来的。