Win32api多文档框架中加入REBAR廉入工具栏的问题,请热心人指点.
REBAR和REBAR里的工具栏都被多文档客户区挡住了,只露出个工具栏的一些按钮出来,怎么办,代码如下:
多文档框架部分消息代码
......
case WM_CREATE:
BuildRebar(hwnd);
break;
......
////////////////////////
HWND BuildRebar(HWND hwndParent)
hwndRebar = CreateWindow(WS_EX_TOPMOST,
REBARCLASSNAME,
NULL,CCS_NODIVIDER|WS_BORDER|WS_CHILD|WS_CLIPCHILDREN|WS_CLIPSIBLINGS|WS_VISIBLE,
0,0,0,0,
hwndParent,
(HMENU)ID_REBAR,
hInst,
NULL);
if(!hwndRebar)
return NULL;
REBARINFOrbi;
rbi.cbSize=sizeof(REBARINFO);
rbi.fMask=0;
rbi.himl=NULL;
SendMessage(hwndRebar,RB_SETBARINFO,0,(LPARAM)&rbi);
REBARBANDINFOArbbi;
ZeroMemory(&rbbi,sizeof(rbbi));
rbbi.cbSize=sizeof(REBARBANDINFOA);
rbbi.fMask=RBBIM_STYLE|RBBIM_CHILD|RBBIM_CHILDSIZE|RBBIM_SIZE;
rbbi.fStyle=RBBS_NOGRIPPER|RBBS_BREAK;//RBBS_CHILDEDGE|RBBS_USECHEVRON|RBBS_VARIABLEHEIGHT
HWND abc=CreateToolBar(hwndRebar);
rbbi.hwndChild=abc;
RECT rc;
GetWindowRect(abc,&rc);
rbbi.cxMinChild=rc.right-rc.left
rbbi.cyMinChild=rc.bottom-rc.top;
rbbi.cx=rc.right;
SendMessage(hwndRebar,RB_INSERTBAND,(WPARAM)-1,(LPARAM)&rbbi);
return hwndRebar;
}
HWND CreateToolBar(HWND hWndParent)
{
const int numButtons = 8;
HWND hWndToolbar=CreateWindowEx(WS_EX_TOOLWINDOW,
TOOLBARCLASSNAME,
NULL,
TBSTYLE_CUSTOMERASE|WS_CHILD|TBSTYLE_LIST,
0,0,0,0,
hWndParent,
(HMENU)IDT_TOOLFS,
hInst,
NULL);
if (hWndToolbar == NULL)
{
return NULL;
}
TBBUTTON tbButtons[numButtons]=
{
{I_IMAGENONE,IDM_FILE,TBSTATE_ENABLED,BTNS_AUTOSIZE|BTNS_BUTTON,{0},0,(INT_PTR)"文件"},
{I_IMAGENONE,IDM_FANG_FYGL,TBSTATE_ENABLED,BTNS_AUTOSIZE|BTNS_BUTTON,{0},0,(INT_PTR)"房源管理"},
{I_IMAGENONE,IDM_KY_KYGL,TBSTATE_ENABLED,BTNS_AUTOSIZE|BTNS_BUTTON,{0},0,(INT_PTR)"客源管理"},
{I_IMAGENONE,IDM_YW_YWDT,TBSTATE_ENABLED,BTNS_AUTOSIZE|BTNS_BUTTON,{0},0,(INT_PTR)"业务动态"},
{I_IMAGENONE,IDM_TOOL_SYGJ,TBSTATE_ENABLED,BTNS_AUTOSIZE|BTNS_BUTTON,{0},0,(INT_PTR)"实用工具"},
{I_IMAGENONE,IDM_YWSZ,TBSTATE_ENABLED,BTNS_AUTOSIZE|BTNS_BUTTON,{0},0,(INT_PTR)"业务设置"},
{I_IMAGENONE,IDM_WINDOW,TBSTATE_ENABLED,BTNS_AUTOSIZE|BTNS_BUTTON,{0},0,(INT_PTR)"窗口"},
{I_IMAGENONE,IDM_HELP,TBSTATE_ENABLED,BTNS_AUTOSIZE|BTNS_BUTTON,{0},0,(INT_PTR)"帮助"}
};
SendMessage(hWndToolbar,TB_AUTOSIZE, 0, 0);
SendMessage(hWndToolbar,TB_BUTTONSTRUCTSIZE,(WPARAM)sizeof(TBBUTTON),0);
SendMessage(hWndToolbar,TB_ADDBUTTONS,(WPARAM)numButtons,(LPARAM)&tbButtons);
return hWndToolbar;
}
[解决办法]
怎么会挡住了呢?建立文档的时候给客户区设置位置试试