2017-10-14 22 views
0

我創建了一個沒有標題欄的窗口,我試圖添加一個菜單,但它出現在我的窗口上方。 這是我的窗口創建:打開一個菜單,點擊靜態(C++)

WNDCLASS wc = { 0 }; 
    wc.lpfnWndProc = SProc; 
    wc.hInstance = hInst; 
    wc.lpszClassName = "test"; 
    wc.hbrBackground = NULL; 
    wc.style = CS_DROPSHADOW; 
    wc.hCursor = carrow; 
    if (!RegisterClass(&wc)) 
     return 1; 

    HWnd = CreateWindow(wc.lpszClassName, 
     "Compta", 
     WS_POPUP|WS_VISIBLE|WS_CLIPCHILDREN, 
     10, 10, 1000, 800, 0, 0, hInst, NULL); 

和菜單:

HMENU hMenubar; 
HMENU hMenu; 

hMenubar = CreateMenu(); 
hMenu = CreateMenu(); 

AppendMenuW(hMenu, MF_STRING, 1111, L"&New"); 
AppendMenuW(hMenu, MF_STRING, 1112, L"&Open"); 
AppendMenuW(hMenu, MF_SEPARATOR, 0, NULL); 
AppendMenuW(hMenu, MF_STRING, 1113, L"&Quit"); 

AppendMenuW(hMenubar, MF_POPUP, (UINT_PTR) hMenu, L"&File"); 
SetMenu(hwnd, hMenubar); 

最好的辦法是有沒有菜單欄(因爲我想我自己的背景不變),我將創建一個靜態的,其中一個簡單的文本,點擊後,菜單就會出現在文本的正下方。是否有可能或者我需要與另一個孩子創建自己的自定義菜單? 感謝

我的代碼,並解決我的問題
+0

使用[彈出式菜單](https://msdn.microsoft.com/en-us/library/windows/desktop/ms648003 (v = vs.85)的.aspx)。 –

+0

當然,謝謝。 – Entretoize

回答

0

更正:

HMENU hMenu; 

hMenu = CreatePopupMenu(); 

AppendMenuW(hMenu, MF_STRING, 1111, L"&New"); 
AppendMenuW(hMenu, MF_STRING, 1112, L"&Open"); 
AppendMenuW(hMenu, MF_SEPARATOR, 0, NULL); 
AppendMenuW(hMenu, MF_STRING, 1113, L"&Quit"); 

TrackPopupMenuEx(hMenu,TPM_LEFTALIGN|TPM_TOPALIGN,100,18,hwnd,0);