?
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;
}