PS. Izbacen je neki kod, koji se tice ucitavanja slika za toolbar, kako bi bio pregledniji.
class REBARCLASS
{
public:
REBARCLASS(){
succ = true;
ToolbarID[0] = 2301;
ToolbarID[1] = 2302;
ToolbarID[2] = 2303;
ToolbarID[3] = 2304;
};
~REBARCLASS(){;};
HWND hwndCB;
HWND hwndTB;
HWND hwndRB;
REBARINFO RBI;
REBARBANDINFO RBBI;
TBBUTTON tb[4];
HIMAGELIST hil;
RECT RC;
HBITMAP hToolbarImage;
DWORD dwBtnSize;
int itextToobar[4];
int ToolbarID[4];
bool succ;
bool CreateReber(HWND&, REBARCLASS&, HINSTANCE&);
};
bool REBARCLASS::CreateReber(HWND& hwnd, REBARCLASS& rbc, HINSTANCE& hInst)
{
rbc.hwndRB = CreateWindowEx(WS_EX_TOOLWINDOW, REBARCLASSNAME, NULL,
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN
| RBS_BANDBORDERS | CCS_NODIVIDER | RBS_VARHEIGHT,
0, 0, 0, 0, hwnd, NULL, hInst, NULL);;
if(!rbc.hwndRB)
{
errmsg(GetLastError(), "Create Window");
return 0;
}
rbc.RBI.cbSize = sizeof(REBARINFO);
rbc.RBI.fMask = 0;
rbc.RBI.himl = (HIMAGELIST)NULL;
if(!SendMessage(rbc.hwndRB, RB_SETBARINFO, 0, (LPARAM)&rbc.RBI))
{
errmsg(GetLastError(), "Set Control");
return 0;
}
rbc.RBBI.cbSize = sizeof(REBARBANDINFO);
rbc.RBBI.fMask = RBBIM_COLORS | RBBIM_TEXT | RBBIM_BACKGROUND |
RBBIM_STYLE | RBBIM_CHILD | RBBIM_CHILDSIZE |
RBBIM_SIZE;
rbc.RBBI.fStyle = RBBS_CHILDEDGE | RBBS_VARIABLEHEIGHT | RBBS_GRIPPERALWAYS;
rbc.hwndCB = CreateWindowEx(NULL, "COMBOBOX", NULL, WS_CHILD | WS_VISIBLE | CBS_SORT | CBS_DROPDOWN,
0, 10, 100, 26, rbc.hwndRB, NULL, hInst, NULL);
SendMessage(rbc.hwndCB, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), NULL);
GetWindowRect(rbc.hwndCB, &rbc.RC);
rbc.tb[0].fsState = TBSTATE_ENABLED;
rbc.tb[0].fsStyle = TBSTYLE_BUTTON;
rbc.tb[0].iBitmap = 1;
rbc.tb[0].idCommand = rbc.ToolbarID[0];
rbc.tb[0].iString = rbc.itextToobar[0];
rbc.tb[1].fsState = TBSTATE_ENABLED;
rbc.tb[1].fsStyle = TBSTYLE_BUTTON;
rbc.tb[1].iBitmap = 2;
rbc.tb[1].idCommand = rbc.ToolbarID[1];
rbc.tb[1].iString = rbc.itextToobar[1];
rbc.tb[2].fsState = TBSTATE_ENABLED;
rbc.tb[2].fsStyle = TBSTYLE_BUTTON;
rbc.tb[2].iBitmap = 3;
rbc.tb[2].idCommand = rbc.ToolbarID[2];
rbc.tb[2].iString = rbc.itextToobar[2];
rbc.tb[3].fsState = TBSTATE_ENABLED;
rbc.tb[3].fsStyle = TBSTYLE_BUTTON;
rbc.tb[3].iBitmap = 4;
rbc.tb[3].idCommand = rbc.ToolbarID[3];
rbc.tb[3].iString = rbc.itextToobar[3];
if(!(rbc.hwndTB = CreateWindowEx(NULL, TOOLBARCLASSNAME, NULL,
WS_CHILD | WS_VISIBLE | TBSTYLE_FLAT |
TBSTYLE_TOOLTIPS | TBSTYLE_LIST | CCS_NORESIZE | CCS_NODIVIDER,
0, 0, 0, 0, rbc.hwndRB, NULL, hInst, NULL)))
errmsg(GetLastError(), "Create Toolbar");
SendMessage(rbc.hwndTB, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), NULL);
SendMessage(rbc.hwndTB, TB_SETIMAGELIST, 0, (LPARAM)rbc.hil);
SendMessage(rbc.hwndTB, TB_ADDBUTTONS, (WPARAM) 4, (LPARAM) &rbc.tb);
rbc.dwBtnSize = SendMessage(rbc.hwndTB, TB_GETBUTTONSIZE, 0, 0);
SendMessage(rbc.hwndRB, RB_INSERTBAND, (WPARAM)NULL, (LPARAM)&rbc.RBBI);
rbc.RBBI.lpText = "Address";
rbc.RBBI.hwndChild = rbc.hwndCB;
rbc.RBBI.cxMinChild = rbc.RC.bottom - rbc.RC.top;
rbc.RBBI.cyMinChild = 32;
rbc.RBBI.cx = 10;
SendMessage(rbc.hwndRB, RB_SETBANDINFO, NULL, (LPARAM)&rbc.RBBI);;
SendMessage(rbc.hwndRB, RB_INSERTBAND, (WPARAM)NULL, (LPARAM)&rbc.RBBI);
rbc.RBBI.lpText = "Tool bar";
rbc.RBBI.hwndChild = rbc.hwndTB;
rbc.RBBI.cxMinChild = HIWORD(rbc.dwBtnSize)*2;;
rbc.RBBI.cyMinChild = 32;
rbc.RBBI.cx = 0;
SendMessage(rbc.hwndRB, RB_SETBANDINFO, NULL, (LPARAM)&rbc.RBBI);
return rbc.succ;
};