explorer like task bar?
-
lexvictory
- Addict

- Posts: 1027
- Joined: Sun May 15, 2005 5:15 am
- Location: Australia
- Contact:
explorer like task bar?
i was wondering if it is possible to get a control (or gadget) like explorer's task bar (the bit where the open windows are displayed), cos im looking to make my own shell and i was wondering if this is possible in purebasic (the taskbar bit).
Demonio Ardente
Currently managing Linux & OS X Tailbite
OS X TailBite now up to date with Windows!
Currently managing Linux & OS X Tailbite
OS X TailBite now up to date with Windows!
-
lexvictory
- Addict

- Posts: 1027
- Joined: Sun May 15, 2005 5:15 am
- Location: Australia
- Contact:
A rebar is a type of container control, you can put any control into a rebar and the rebar allows you to re-arrange the layout and automatically resizes the contained controls. Plus the rebar has a nice gradient background, you can see this in the toolbar of windows explorer, internet explorer and firefox (to name a few).
-
lexvictory
- Addict

- Posts: 1027
- Joined: Sun May 15, 2005 5:15 am
- Location: Australia
- Contact:
-
lexvictory
- Addict

- Posts: 1027
- Joined: Sun May 15, 2005 5:15 am
- Location: Australia
- Contact:
silly me, i should have searched my documentation b4 asking if anyone knew how to make one.....
ill post the code i have so far later today, wen i get home.....
cos i got some of it working, jsut the resizing bit and the position of the gadgets.... work well apart from that...
ill post the code i have so far later today, wen i get home.....
cos i got some of it working, jsut the resizing bit and the position of the gadgets.... work well apart from that...
Demonio Ardente
Currently managing Linux & OS X Tailbite
OS X TailBite now up to date with Windows!
Currently managing Linux & OS X Tailbite
OS X TailBite now up to date with Windows!
-
lexvictory
- Addict

- Posts: 1027
- Joined: Sun May 15, 2005 5:15 am
- Location: Australia
- Contact:
heres the code from sdk documentation:
and heres my code:
if u take out the bit with the 2nd combo gadget, it works fine..... (resizing window width)
Code: Select all
HWND WINAPI CreateRebar(HWND hwndOwner)
{
REBARINFO rbi;
REBARBANDINFO rbBand;
RECT rc;
HWND hwndCB, hwndTB, hwndRB;
DWORD dwBtnSize;
INITCOMMONCONTROLSEX icex;
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_COOL_CLASSES|ICC_BAR_CLASSES;
InitCommonControlsEx(&icex);
hwndRB = CreateWindowEx(WS_EX_TOOLWINDOW,
REBARCLASSNAME,
NULL,
WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|
WS_CLIPCHILDREN|RBS_VARHEIGHT|
CCS_NODIVIDER,
0,0,0,0,
hwndOwner,
NULL,
g_hinst,
NULL);
if(!hwndRB)
return NULL;
// Initialize and send the REBARINFO structure.
rbi.cbSize = sizeof(REBARINFO); // Required when using this
// structure.
rbi.fMask = 0;
rbi.himl = (HIMAGELIST)NULL;
if(!SendMessage(hwndRB, RB_SETBARINFO, 0, (LPARAM)&rbi))
return NULL;
// Initialize structure members that both bands will share.
rbBand.cbSize = sizeof(REBARBANDINFO); // Required
rbBand.fMask = RBBIM_COLORS | RBBIM_TEXT | RBBIM_BACKGROUND |
RBBIM_STYLE | RBBIM_CHILD | RBBIM_CHILDSIZE |
RBBIM_SIZE;
rbBand.fStyle = RBBS_CHILDEDGE | RBBS_FIXEDBMP;
rbBand.hbmBack = LoadBitmap(g_hinst,
MAKEINTRESOURCE(IDB_BACKGRND));
// Create the combo box control to be added.
hwndCB = CreateComboBox(hwndRB);
// Set values unique to the band with the combo box.
GetWindowRect(hwndCB, &rc);
rbBand.lpText = "Combo Box";
rbBand.hwndChild = hwndCB;
rbBand.cxMinChild = 0;
rbBand.cyMinChild = rc.bottom - rc.top;
rbBand.cx = 200;
// Add the band that has the combo box.
SendMessage(hwndRB, RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbBand);
// Create the toolbar control to be added.
hwndTB = CreateToolbar(hwndOwner, dwStyle);
// Get the height of the toolbar.
dwBtnSize = SendMessage(hwndTB, TB_GETBUTTONSIZE, 0,0);
// Set values unique to the band with the toolbar.
rbBand.lpText = "Tool Bar";
rbBand.hwndChild = hwndTB;
rbBand.cxMinChild = 0;
rbBand.cyMinChild = HIWORD(dwBtnSize);
rbBand.cx = 250;
// Add the band that has the toolbar.
SendMessage(hwndRB, RB_INSERTBAND, (WPARAM)-1, (LPARAM)&rbBand);
return (hwndRB);
}
Code: Select all
If OpenWindow(0,100,100,500,200,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_SizeGadget, "rebar test")
rbi.REBARINFO
rbband.REBARBANDINFO
rc.RECT
hwndCB.l
hwndTB.l
hwndRB.l
dwBtnSize.w
icex.INITCOMMONCONTROLSEX
icex\dwSize = SizeOf(INITCOMMONCONTROLSEX);
icex\dwICC = #ICC_COOL_CLASSES|#ICC_BAR_CLASSES
InitCommonControlsEx_(@icex)
hwndRB = CreateWindowEx_(#WS_EX_TOOLWINDOW, "ReBarWindow32",NULL,#WS_CHILD|#WS_VISIBLE|#WS_CLIPSIBLINGS|#WS_CLIPCHILDREN|#RBS_VARHEIGHT|#CCS_NODIVIDER,0,0,0,0,WindowID(),NULL,GetModuleHandle_(null),NULL)
If hwndrb = 0
errormsg("create rebar")
End
EndIf
;// Initialize And send the REBARINFO Structure.
rbi\cbSize = SizeOf(REBARINFO) ;// Required when using this
;// Structure.
rbi\fMask = 0
rbi\himl = NULL
If SendMessage_(hwndRB, #RB_SETBARINFO, 0, @rbi) = 0
errormsg("send rbi")
End
EndIf
;// Initialize Structure members that both bands will share.
rbBand\cbSize = SizeOf(REBARBANDINFO); // Required
rbBand\fMask = #RBBIM_COLORS | #RBBIM_TEXT | #RBBIM_BACKGROUND |#RBBIM_STYLE | #RBBIM_CHILD | #RBBIM_CHILDSIZE |#RBBIM_SIZE
rbBand\fStyle = #RBBS_CHILDEDGE | #RBBS_FIXEDBMP;
;rbBand\hbmBack = LoadBitmap(GetModuleHandle_(0), MAKEINTRESOURCE(#IDB_BACKGRND))
CreateGadgetList(hwndrb)
ComboBoxGadget(2, 0,0,100,20)
AddGadgetItem(2, -1, "uno")
;// Create the combo box control To be added.
hwndCB = GadgetID(2)
;// Set values unique To the band with the combo box.
GetWindowRect_(hwndCB, @rc)
rbBand\lpText = @"Combo Box"
rbBand\hwndChild = hwndCB
rbBand\cxMinChild = 0
rbBand\cyMinChild = rc\bottom - rc\top
rbBand\cx = 200
;// Add the band that has the combo box.
SendMessage_(hwndRB, #RB_INSERTBAND, -1, @rbBand)
ComboBoxGadget(3, 250,0,100,20)
AddGadgetItem(3, -1, "due")
;// Create the combo box control To be added.
hwndCB2 = GadgetID(3)
;// Set values unique To the band with the combo box.
GetWindowRect_(hwndCB2, @rc)
rbBand\lpText = @"Combo Box"
rbBand\hwndChild = hwndCB
rbBand\cxMinChild = 0
rbBand\cyMinChild = rc\bottom - rc\top
rbBand\cx = 250
;// Add the band that has the combo box.
SendMessage_(hwndRB, #RB_INSERTBAND, -1, @rbBand)
;{ following bit dont work, couldnt get it to compile!
;// Create the toolbar control To be added.
;hwndTB = CreateToolbar_(0, WindowID())
;// Get the height of the toolbar.
;dwBtnSize = SendMessage_(hwndTB, #TB_GETBUTTONSIZE, 0,0)
;// Set values unique To the band with the toolbar.
;rbBand\lpText = "Tool Bar"
;rbBand\hwndChild = hwndTB
;rbBand\cxMinChild = 0
;rbBand\cyMinChild = HIWORD(dwBtnSize)
;rbBand\cx = 250
;// Add the band that has the toolbar.
;SendMessage_(hwndRB, #RB_INSERTBAND, -1, @rbBand)
;}
Repeat
event = WaitWindowEvent()
If event = #PB_Event_CloseWindow
quit = 1
ElseIf event = #PB_Event_SizeWindow
MoveWindow_(hwndrb, 0,0,WindowWidth(), 30, #True)
EndIf
Until quit = 1
EndIf
Demonio Ardente
Currently managing Linux & OS X Tailbite
OS X TailBite now up to date with Windows!
Currently managing Linux & OS X Tailbite
OS X TailBite now up to date with Windows!
Hi
Check out Sparkie's example at this link:
viewtopic.php?t=11802&postdays=0&postor ... er&start=0
Best Regrads
Henrik.
Check out Sparkie's example at this link:
viewtopic.php?t=11802&postdays=0&postor ... er&start=0
Best Regrads
Henrik.
-
lexvictory
- Addict

- Posts: 1027
- Joined: Sun May 15, 2005 5:15 am
- Location: Australia
- Contact:
