Thritt

Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Всем привет! у меня возникла проблема с созданием контекстного меню в приложении Win32. ///// main.cpp //////////// #include <windows.h> #include "resource.h" LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrInst, LPSTR lpCmdLine, int nShowCmd) { HWND hWnd; char WndClassName[] = "wndclassname"; MSG msg; WNDCLASSEX wnd; wnd.cbClsExtra = 0; wnd.cbSize = sizeof(wnd); wnd.cbWndExtra = 0; wnd.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wnd.hCursor = LoadCursor(NULL, IDC_ARROW); wnd.hIcon = 0; wnd.hIconSm = 0; wnd.hInstance = hInst; wnd.lpfnWndProc = WndProc; wnd.lpszClassName = WndClassName; wnd.lpszMenuName = 0; wnd.style = CS_HREDRAW | CS_VREDRAW; RegisterClassEx(&wnd); hWnd = CreateWindow(WndClassName, "Context Menu", WS_OVERLAPPEDWINDOW, 100, 100, 500, 300, NULL, NULL, hInst, NULL); ShowWindow(hWnd, nShowCmd); UpdateWindow(hWnd); while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return (int)msg.wParam; } LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { HMENU menu; int x, y; switch (msg) { // наверное что-то неладное у меня в следующем коде: /////////////////////////////////////////////////////////////////////////////////////////////////////// case WM_CREATE: menu = LoadMenu(GetModuleHandle(NULL), MAKEINTRESOURCE(IDM_CONTEXT)); menu = GetSubMenu(menu, 0); break; case WM_CONTEXTMENU: x = LOWORD(lParam); y = HIWORD(lParam); TrackPopupMenuEx(menu, 0, x, y, hWnd, NULL); break; //////////////////////////////////////////////////////////////////////////////////////////////////////// case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hWnd, msg, wParam, lParam); } return 0; } //////////////////////////////////////// resource.h ///////////////////////////////// #define IDM_CONTEXT 1000 #define ID_COM_1 1001 #define ID_COM_2 1002 #define ID_COM_3 1003 в книжке написано что нужно определить нулевой пункт меню нулевого уровня как подменю, имеющее какое-нибудь условное имя. //////////////////// resource.rc ///////////////////////////////// 1000 MENU DISCARDABLE BEGIN POPUP "menu" BEGIN MENUITEM "Command1" 1001 MENUITEM "Command2" 1002 MENUITEM "Command3" 1003 END END в итоге никакого контекстного меню не появляетс Подскажите пожалуйста в чем проблема. |