HWND CreatePopupmenu()
-
Hallo!
Wie weise ich meinem neuen mit HWND CreatePopupMenu(VOID) erstellten Popup-Menü ein Handle zu. Bei MSDN heißt es, wenn die o.g. Funktion erfolgreich ist, wird das Handle von dieser returnt. Das verstehe ich nicht ganz. Könnte mir das jemand erklären/Syntax posten?
-
CreatePopupMenu(); hab ich jetzt selbst geschafft. Nun frage ich mich wo ich TrackPopupMenuEx(hmenu,TPM_CENTERALIGN,10,10,hwnd,NULL); unterbringe...
Das kleine Programm:
#include <windows.h>
#include <winuser.h>LRESULT CALLBACK WindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
HDC hdc;
RECT rect;
HMENU hmenu;
const char sztext[] = "TestTestTestTestTestTest";switch(message)
{
case WM_CREATE:{
{HMENU CreatePopupMenu(hmenu);}
}
case WM_MOVE:
{
hdc = GetDC(hwnd);
GetClientRect(hwnd, &rect);
TextOut(hdc, rect.right/2 -85, rect.bottom/2 -10,
sztext, strlen(sztext));
ReleaseDC(hwnd, hdc);return(0);
}break;
case WM_DESTROY:
{
PostQuitMessage(0);
return(0);
}break;
default:break;
}
return(DefWindowProc(hwnd, message, wparam, lparam));}
int WINAPI WinMain(HINSTANCE hinst, HINSTANCE hprevinst,
LPSTR lpcmdline, int ncmdshow)
{
WNDCLASSEX winclass;
HWND hwnd;
MSG message;
const char szclassname[] = "klasse1";winclass.cbSize = sizeof(WNDCLASSEX);
winclass.style = CS_HREDRAW | CS_VREDRAW;
winclass.lpfnWndProc = WindowProc;
winclass.cbClsExtra = 0;
winclass.cbWndExtra = 0;
winclass.hInstance = hinst;
winclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);
winclass.hCursor = LoadCursor(NULL, IDC_ARROW);
winclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
winclass.lpszMenuName = NULL;
winclass.lpszClassName = szclassname;
winclass.hIconSm = LoadIcon(NULL, IDI_APPLICATION);
if(!RegisterClassEx(&winclass))
{ return 0; }
if(!(hwnd = CreateWindowEx(NULL,
szclassname,
"TestTestTest",
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
300,300,
400,300,
NULL,
NULL,
hinst,
NULL)))
{
return 0;
}
ShowWindow(hwnd, ncmdshow);
UpdateWindow(hwnd);while(GetMessage(&message,NULL,0,0)==TRUE)
{
if(message.message == WM_QUIT)
{
break; }
TranslateMessage(&message);
DispatchMessage(&message);
}return message.wParam;
}