sludge
June 8th, 2005, 07:19 PM
It appears that the Windows Rebar control does not fully support being displayed vertically.
This is how I create the Rebar:
hwndMainRebar = CreateWindowEx(WS_EX_TOOLWINDOW,REBARCLASSNAME,NULL,
WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|CCS_NODIVIDER|CCS_NOPARENTALIGN|CCS_VERT,
0,0,0,0,hPWnd,NULL,hInst,NULL);
Problem is that the fields of REBARBANDINFO (the structure that you sent before sending a RB_INSE*****D message to the rebar window) seem to imply that you cannot get a chevron when using the rebar vertically.
Under the remarks section in MSDN for REBARBANDINFO:
"The cxMinChild, cyMinChild, and cx members provide information on dimensions relative to the orientation of the control. That is, for a horizontal rebar control, cxMinChild and cx are horizontal measurements and cyMinChild is a vertical measurement. However, if the control uses the CCS_VERT style, cxMinChild and cx are vertical measurements and cyMinChild is a horizontal measurement."
However no such relativity exists for the cxIdeal field and there is no cyIdeal. Even if I try setting the cxIdeal to a value which is larger than the bands width the chevron still does not appear, whereas when I display the rebar horizontally I get the chevron just by setting the cxIdeal correctly.
Has anyone managed to work out how to get a chevron on a vertical rebar?
This is how I create the Rebar:
hwndMainRebar = CreateWindowEx(WS_EX_TOOLWINDOW,REBARCLASSNAME,NULL,
WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|CCS_NODIVIDER|CCS_NOPARENTALIGN|CCS_VERT,
0,0,0,0,hPWnd,NULL,hInst,NULL);
Problem is that the fields of REBARBANDINFO (the structure that you sent before sending a RB_INSE*****D message to the rebar window) seem to imply that you cannot get a chevron when using the rebar vertically.
Under the remarks section in MSDN for REBARBANDINFO:
"The cxMinChild, cyMinChild, and cx members provide information on dimensions relative to the orientation of the control. That is, for a horizontal rebar control, cxMinChild and cx are horizontal measurements and cyMinChild is a vertical measurement. However, if the control uses the CCS_VERT style, cxMinChild and cx are vertical measurements and cyMinChild is a horizontal measurement."
However no such relativity exists for the cxIdeal field and there is no cyIdeal. Even if I try setting the cxIdeal to a value which is larger than the bands width the chevron still does not appear, whereas when I display the rebar horizontally I get the chevron just by setting the cxIdeal correctly.
Has anyone managed to work out how to get a chevron on a vertical rebar?