我正在尝试确定Windows任务栏(系统托盘?)停靠在哪一侧-因此我可以将弹出窗口定位在任务栏的上方/下方/左侧/右侧。
我正在使用SHAppBarMessage(ABM_QUERYPOS, &barData)
获取此信息,但是当我的任务栏为ABE_LEFT
时,它总是为我返回ABE_TOP
。
怎么了也许我不能使用该函数来确定它?也许我的APPBARDATA
参数是错误的?
APPBARDATA barData;
barData.cbSize = sizeof(APPBARDATA);
barData.hWnd = FindWindow("Shell_TrayWnd", NULL);
barData.uCallbackMessage = 0;
//barData.uEdge = ABE_LEFT;
//barData.rc = RECT{0,0300,300};
barData.lParam = (LPARAM)FALSE;
SHAppBarMessage(ABM_QUERYPOS, &barData);
// barData.uEdge always equals ABE_LEFT
最佳答案
看来我使用了错误的标志。以下作品:
APPBARDATA barData {0};
barData.cbSize = sizeof(APPBARDATA);
UINT_PTR res = SHAppBarMessage(ABM_GETTASKBARPOS, &barData);
关于c - 检索任务栏对接位置:结果不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37222540/