Jak wysterować MenuItem1.Enable za pomocą MeniItem2.checked

0

Wybaczcie za tak ordynarny temat ale nie wiem jak to inaczej opisać. Mam problem, z którym w delphi poradziłbym sobie w minutę niestety w C++ wymiękłem

Poniższy uproszczony kod pokazuje jak tworzony jest popup:

#define MES_EDIT    _T("To ma być wyszarzone lub nie")
#define MES_CHECK   _T("Tu jest checkbox")
void CLineNumberEdit::OnContextMenu(CWnd* pWnd, CPoint point)
{
...
  CMenu menu;
  menu.CreatePopupMenu();
  menu.AppendMenu(MF_BYPOSITION, WM_USER+0x7002,MES_EDIT);  //nazwijmy go menuitem1
  menu.AppendMenu(MF_BYPOSITION | MF_CHECKED, WM_USER+0x7003,MES_CHECK); //nazwijmy go menuitem2

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

Teraz chciałbym aby pierwszy MenuItem1 się wyszarzał (WM_GRAYED) w zależności od tego czy MenuItem2 jest check lub not check.

PS. Od razu mówię, że dostałem projekt, którego nie mogę przepisać na coś lepszego, a że czasu mało to mam tylko "dorobić" kilka funkcjonalności. Funkcjonalności dorobiłem ale wymiękłem na obsłudze GUI

0

Problem rozwiązałem nieco go obchodząc ale przynajmniej działa.

BOOL CLineNumberEdit::OnCommand(WPARAM wParam, LPARAM lPAram)
{
  switch (LWORD(wParam))
  {
    case WM_USER+0x7003:
      statyczna_zmienna_typu_bool = ^statyczna_zmienna_typu_bool 
...
  }
}

i w OnContextMenu

DWORD flags;
flags = statyczna_zmienna_typu_bool  ? MF_GRAYED : MF_ENABLED;
menu.AppendMenu(MF_BYPOSITION | flags , WM_USER+0x7002,MES_EDIT); 

1 użytkowników online, w tym zalogowanych: 0, gości: 1