剪贴簿(十一)

2010-12-30 21:14:24 · 作者: · 浏览: 20191
eMenuItem ((HMENU) wParam, IDM_EDIT_PASTE,
IsClipboardFormatAvailable (CF_TCHAR) MF_ENABLED : MF_GRAYED) ;

bEnable = pText MF_ENABLED : MF_GRAYED ;

EnableMenuItem ((HMENU) wParam, IDM_EDIT_CUT, bEnable) ;
EnableMenuItem ((HMENU) wParam, IDM_EDIT_COPY, bEnable) ;
EnableMenuItem ((HMENU) wParam, IDM_EDIT_CLEAR, bEnable) ;
break ;

case WM_COMMAND:
switch (LOWORD (wParam))
{
case IDM_EDIT_PASTE:
OpenClipboard (hwnd) ;

if (hGlobal = GetClipboardData (CF_TCHAR))
{
pGlobal = GlobalLock (hGlobal) ;
if (pText)
{
free (pText) ;
pText = NULL ;
}
pText = malloc (GlobalSize (hGlobal)) ;
lstrcpy (pText, pGlobal) ;
InvalidateRect (hwnd, NULL, TRUE) ;
}
CloseClipboard () ;
return 0 ;

case IDM_EDIT_CUT:
case IDM_EDIT_COPY:
if (!pText)
return 0 ;

hGlobal = GlobalAlloc (GHND | GMEM_SHARE,
(lstrlen (pText) + 1) * sizeof (TCHAR)) ;
pGlobal = GlobalLock (hGlobal) ;
lstrcpy (pGlobal, pText) ;
GlobalUnlock (hGlobal) ;

OpenClipboard (hwnd) ;
EmptyClipboard () ;
SetClipboardData (