Nie chce mi działać kontekstowe menu utworzone w eVC++ 4.0

  • 3 Odpowiedzi
  • 1137 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

Nie chce mi działać kontekstowe menu utworzone w eVC++ 4.0
« dnia: Marzec 11, 2006, 11:30:34 »
Witam

Problem dotyczy kontekstowego menu. Postępuję tak jak w VC++ 6.0 ale niestety wyskakują blędy podczas kompilacji takiego typu:
--------------------Configuration: Menu - Win32 (WCE emulator) Debug--------------------
Compiling...
MenuDlg.cpp
D:\projekty\menu\MenuDlg.cpp(43) : error C2065: 'ON_WM_CONTEXTMENU' : undeclared identifier
D:\projekty\menu\MenuDlg.cpp(45) : error C2059: syntax error : '{'
D:\projekty\menu\MenuDlg.cpp(45) : error C2143: syntax error : missing ';' before '{'
D:\projekty\menu\MenuDlg.cpp(45) : error C2447: missing function header (old-style formal list?)
D:\projekty\menu\MenuDlg.cpp(45) : error C2143: syntax error : missing ';' before '}'
Error executing cl.exe.

Menu.exe - 5 error(s), 0 warning(s)

Kod funkcji wygląda tak:
void CMenuDlg::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: Add your message handler code here

CMenu  *m_lMenu;                             // Wskaźnik do menu
CPoint  m_pPunkt;                            // Kopia pozycji kursora myszy

m_pPunkt = point;                            // Pozycja myszy do zmniennej lokalnej
//ClientToScreen(&m_pPunkt);                 // Zamiana pozycji względnej na ekranową
m_lMenu = GetMenu();                         // Pobranie wskaźnika do menu
m_lMenu = m_lMenu -> GetSubMenu(0);          // pobranie wskaźnika do pierwszego podmenu
// Wyświetlenie menu kontekstowego
m_lMenu -> TrackPopupMenu(TPM_CENTERALIGN,
 m_pPunkt.x,m_pPunkt.y,this,0);

}


Mam nadzieję ze mi na to cos poradzicie. Ponadto ponownie ponawiam prośbę o odpowiedź na mojego posta dotyczącego zwykłego menu.

Pozdrawiam.

Nie chce mi działać kontekstowe menu utworzone w eVC++ 4.0
« Odpowiedź #1 dnia: Marzec 12, 2006, 03:43:04 »
Sam sobie odpowiadam ale niestety tylko po części (i to bardzo małej).

Znalazłem artykuł nawet z dołączonym do tego projektem dotyczący tego właśnie problemu. Niestety znów zonk  :(  :(  :(  projekt jest na eVC++ 3.0 i niestety nie działa pod eVC++ 4.0. Problem jest w dołączeniu pliku afxres.h i jeszcze jakiegoś jednego którego nazwy nie pamiętam. Oznacza to że widok klas i plików jest dostepny ale niestety widok zasobów nie  :( . W artykule jest niby napisane jak to robic (nawet trzeba klasę do tego dodatkową założyć) ale mimo moich szczerych starań niestety nic mi nie wychodzi - z każdym krokiem jest coraz więcej błędów po kompilacji. Tak wiec proszę kogoś bardziej obeznanego w tym temacie aby mi rozjaśnił sprawę.

Oto link do artykułu:

http://www.pocketpcdn.com/articles/contextmenu.html

Pozdrawiam.

Nie chce mi działać kontekstowe menu utworzone w eVC++ 4.0
« Odpowiedź #2 dnia: Marzec 21, 2006, 10:29:09 »
Z tego co sie dowiedzialem wydaje mi się ze kontektowe menu działa chyba na List Controll itp. oraz na programach typu Single Document gdzie istnieje mozliwośc pracy ze znakami. Natomiast menu kontekstowe niestety chyba nie wspołpracuje z Dialogami.

Bardzo prosze o opinie na ten temat i moze ktoś obali moja tezę. Jeśli jestem w błędzie to proszę bardzo o wytłumaczenie i przeanalizowanie całego tematu który utworzyłem.

Pozdrawiam.

Nie chce mi działać kontekstowe menu utworzone w eVC++ 4.0
« Odpowiedź #3 dnia: Marzec 01, 2007, 17:58:52 »
Coś takiego:

http://cowo.supersized.org/archives/6-ON_WM_CONTEXTMENU-bug-in-Embedded-Visual-C++-4.html

Ci nie pomoże?

Gość ręcznie wstawia brakujące #define ON_WM_CONTEXTMENU

Chodzi poprawnie a żadnych głebokich rewolucji w projekcie.