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 ( |