本文整理汇总了C++中CIconMenu::EnableMenuItem方法的典型用法代码示例。如果您正苦于以下问题:C++ CIconMenu::EnableMenuItem方法的具体用法?C++ CIconMenu::EnableMenuItem怎么用?C++ CIconMenu::EnableMenuItem使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CIconMenu
的用法示例。
在下文中一共展示了CIconMenu::EnableMenuItem方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PreTranslateMessage
BOOL CProgressDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN)
{
if (pMsg->wParam == VK_ESCAPE)
{
// pressing the ESC key should close the dialog. But since we disabled the escape
// key (so the user doesn't get the idea that he could simply undo an e.g. update)
// this won't work.
// So if the user presses the ESC key, change it to VK_RETURN so the dialog gets
// the impression that the OK button was pressed.
if ((!GetDlgItem(IDCANCEL)->IsWindowEnabled())
&&(GetDlgItem(IDOK)->IsWindowEnabled())&&(GetDlgItem(IDOK)->IsWindowVisible()))
{
// since we convert ESC to RETURN, make sure the OK button has the focus.
GetDlgItem(IDOK)->SetFocus();
pMsg->wParam = VK_RETURN;
}
}
}
else if (pMsg->message == WM_CONTEXTMENU || pMsg->message == WM_RBUTTONDOWN)
{
CWnd * pWnd = (CWnd*) GetDlgItem(IDC_LOG);
if (pWnd == GetFocus())
{
CIconMenu popup;
if (popup.CreatePopupMenu())
{
popup.AppendMenuIcon(WM_COPY, IDS_SCIEDIT_COPY, IDI_COPYCLIP);
if (m_Log.GetSelText().IsEmpty())
popup.EnableMenuItem(WM_COPY, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
popup.AppendMenu(MF_SEPARATOR);
popup.AppendMenuIcon(EM_SETSEL, IDS_SCIEDIT_SELECTALL);
int cmd = popup.TrackPopupMenu(TPM_RETURNCMD | TPM_LEFTALIGN | TPM_NONOTIFY, pMsg->pt.x, pMsg->pt.y, this);
switch (cmd)
{
case 0: // no command selected
break;
case EM_SETSEL:
case WM_COPY:
::SendMessage(GetDlgItem(IDC_LOG)->GetSafeHwnd(), cmd, 0, -1);
break;
}
return TRUE;
}
}
}
return __super::PreTranslateMessage(pMsg);
}