首先,在你想要放菜单的位置画一个按钮
hButton = CreateWindow(TEXT("button"),TEXT(""),WS_CHILD|WS_VISIBLE|BS_OWNERDRAW,rect.left+5,rect.bottom-20,40,15,hwnd,(HMENU)5000,hInst,NULL);
创建按钮的时候把stytle中设为BS_OWNERDRAW,此时,会给消息处理函数发一个WM_DRAWITEM消息,参数lParam是一个包含自绘信息的结构体,因此,在这个消息下可以自己在按钮上绘制想要的效果
然后在WM_COMMAND中创建弹出式菜单。
case 5000:
GetClientRect(hwnd,&rect);
p.x=rect.left-5+cxClient/5;
p.y=rect.bottom-25;
ClientToScreen(hwnd1,&p);//屏幕与客户区的点转换
TrackPopupMenu(GetSubMenu(LoadMenu(hInst,MAKEINTRESOURCE(IDR_MENU)),0),TPM_LEFTALIGN|TPM_BOTTOMALIGN,p.x,p.y,0,hwnd1,0);
//这里的IDR_MENU是你在资源文件中创建的菜单
这样,就可以做到像QQ主界面左下角的那样子的菜单了~