|
|
|
@ -1827,7 +1827,7 @@ icvCreateTrackbar( const char* trackbar_name, const char* window_name, |
|
|
|
|
if( !window_name || !trackbar_name ) |
|
|
|
|
CV_ERROR( CV_StsNullPtr, "NULL window or trackbar name" ); |
|
|
|
|
|
|
|
|
|
if( count <= 0 ) |
|
|
|
|
if( count < 0 ) |
|
|
|
|
CV_ERROR( CV_StsOutOfRange, "Bad trackbar maximal value" ); |
|
|
|
|
|
|
|
|
|
window = icvFindWindowByName(window_name); |
|
|
|
@ -1848,9 +1848,14 @@ icvCreateTrackbar( const char* trackbar_name, const char* window_name, |
|
|
|
|
{ |
|
|
|
|
const int default_height = 30; |
|
|
|
|
|
|
|
|
|
window->toolbar.toolbar = CreateToolbarEx( |
|
|
|
|
window->frame, WS_CHILD | CCS_TOP | TBSTYLE_WRAPABLE, |
|
|
|
|
1, 0, 0, 0, 0, 0, 16, 20, 16, 16, sizeof(TBBUTTON)); |
|
|
|
|
// CreateToolbarEx is deprecated and forces linking against Comctl32.lib.
|
|
|
|
|
window->toolbar.toolbar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, |
|
|
|
|
WS_CHILD | CCS_TOP | TBSTYLE_WRAPABLE | BTNS_AUTOSIZE | BTNS_BUTTON, |
|
|
|
|
0, 0, 0, 0, |
|
|
|
|
window->frame, NULL, GetModuleHandle(NULL), NULL); |
|
|
|
|
// CreateToolbarEx automatically sends this but CreateWindowEx doesn't.
|
|
|
|
|
SendMessage(window->toolbar.toolbar, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0); |
|
|
|
|
|
|
|
|
|
GetClientRect(window->frame, &rect); |
|
|
|
|
MoveWindow( window->toolbar.toolbar, 0, 0, |
|
|
|
|
rect.right - rect.left, default_height, TRUE); |
|
|
|
@ -2098,6 +2103,39 @@ CV_IMPL void cvSetTrackbarPos( const char* trackbar_name, const char* window_nam |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CV_IMPL void cvSetTrackbarMax(const char* trackbar_name, const char* window_name, int maxval) |
|
|
|
|
{ |
|
|
|
|
CV_FUNCNAME( "cvSetTrackbarMax" ); |
|
|
|
|
|
|
|
|
|
__BEGIN__; |
|
|
|
|
|
|
|
|
|
if (maxval >= 0) |
|
|
|
|
{ |
|
|
|
|
CvWindow* window = 0; |
|
|
|
|
CvTrackbar* trackbar = 0; |
|
|
|
|
if (trackbar_name == 0 || window_name == 0) |
|
|
|
|
{ |
|
|
|
|
CV_ERROR(CV_StsNullPtr, "NULL trackbar or window name"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
window = icvFindWindowByName(window_name); |
|
|
|
|
if (window) |
|
|
|
|
{ |
|
|
|
|
trackbar = icvFindTrackbarByName(window, trackbar_name); |
|
|
|
|
if (trackbar) |
|
|
|
|
{ |
|
|
|
|
// The position will be min(pos, maxval).
|
|
|
|
|
trackbar->maxval = maxval; |
|
|
|
|
SendMessage(trackbar->hwnd, TBM_SETRANGEMAX, (WPARAM)TRUE, (LPARAM)maxval); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
__END__; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CV_IMPL void* cvGetWindowHandle( const char* window_name ) |
|
|
|
|
{ |
|
|
|
|
void* hwnd = 0; |
|
|
|
|