获取Windows任务栏的位置与大小

获取Windows任务栏的位置与大小  

 

使用SHAppBarMessage这个消息函数,可以取得任务栏在屏幕上位置与大小。
UINT_PTR SHAppBarMessage(
    DWORD dwMessage, 
    PAPPBARDATA pData
); 
调用指定参数dwMessage为ABM_GETTASKBARPOS,参数pData是一个APPBARDATA结构:
typedef struct _AppBarData {
    DWORD  cbSize; 
    HWND   hWnd; 
    UINT   uCallbackMessage;
    UINT   uEdge; 
    RECT   rc; 
    LPARAM lParam; 
} APPBARDATA, *PAPPBARDATA;

结构的uEdge成员表示位务栏在屏幕上的位置:0左,1上,2右,3下,
rc成员表示任务栏所占屏幕的区域。


void CDialog::OnOK() 
{
     APPBARDATA ad;
     ZeroMemory(&ad,sizeof APPBARDATA);
     ad.cbSize=sizeof APPBARDATA;
     SHAppBarMessage(ABM_GETTASKBARPOS, &ad);

     TRACE("%d,%d,%d,%d,%d\n",  ad.uEdge, ad.rc.left, ad.rc.right, ad.rc.top, ad.rc.bottom);
}

 

你可能感兴趣的:(获取Windows任务栏的位置与大小)