AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > VC编程

带有菜单的EDIT控件实现

51自学网 2015-08-30 http://www.wanshiok.com

 

  flags = (flags == MF_GRAYED || bReadOnly) ? MF_GRAYED : 0;
  menu.InsertMenu(2, MF_BYPOSITION | flags, WM_CUT,
    MES_CUT);
  menu.InsertMenu(4, MF_BYPOSITION | flags, WM_CLEAR,
    MES_DELETE);

  flags = IsClipboardFormatAvailable(CF_TEXT) &&
    !bReadOnly ? 0 : MF_GRAYED;
  menu.InsertMenu(4, MF_BYPOSITION | flags, WM_PASTE,
    MES_PASTE);

  menu.InsertMenu(6, MF_BYPOSITION | MF_SEPARATOR);

  int len = GetWindowTextLength();
  flags = (!len || (LOWORD(sel) == 0 && HIWORD(sel) ==
    len)) ? MF_GRAYED : 0;
  menu.InsertMenu(7, MF_BYPOSITION | flags, ME_SELECTALL,
    MES_SELECTALL);

  menu.TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON |
    TPM_RIGHTBUTTON, point.x, point.y, this);
}

BOOL CMenuEdit::OnCommand(WPARAM wParam, LPARAM lParam)
{
  switch (LOWORD(wParam))
  {
  case EM_UNDO:
  case WM_CUT:
  case WM_COPY:
  case WM_CLEAR:
  case WM_PASTE:
    return SendMessage(LOWORD(wParam));
  case ME_SELECTALL:
    return SendMessage (EM_SETSEL, 0, -1);
  default:
    return CEdit::OnCommand(wParam, lParam);
  }
}

 
 
说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。

上一篇:对话框隐藏的几种方法  下一篇:VC++中所见即所得打印的简易实现