Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations strongm on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Progress Bar

Status
Not open for further replies.

jsaxon2

Programmer
Oct 24, 2001
56
US
Is there a way to set the position on the progress bar to the position that a user clicks on the progress bar itself? For example, if the user clicks on the middle of the progress bar, the position of the progress bar gets updated to the middle.

Thanks,
Jack
 
Get the mouse coordinates, then use (-ing y) the update feature on the progress bar.
Use the following code to obtain the horizontal and vertical position (see below for more info):
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);

SendMessage(hBar,PBM_SETRANGE,(WPARAM)0,MAKELPARAM(0,highLimit));
SendMessage(hBar,PBM_SETSTEP,(WPARAM)1,(LPARAM)0);
This here-> SendMessage(hBar,PBM_SETPOS,(WPARAM)0,(LPARAM)0);
SendMessage(hBar,PBM_STEPIT,(WPARAM)0,(LPARAM)0);

-----------------------------------------------------------
WM_MOUSEMOVE Notification
The WM_MOUSEMOVE message is posted to a window when the cursor moves. If the mouse is not captured, the message is posted to the window that contains the cursor. Otherwise, the message is posted to the window that has captured the mouse.

A window receives this message through its WindowProc function.


Syntax

WM_MOUSEMOVE

WPARAM wParam
LPARAM lParam;

Parameters

wParam
Indicates whether various virtual keys are down. This parameter can be one or more of the following values.
MK_CONTROL
The CTRL key is down.
MK_LBUTTON
The left mouse button is down.
MK_MBUTTON
The middle mouse button is down.
MK_RBUTTON
The right mouse button is down.
MK_SHIFT
The SHIFT key is down.
MK_XBUTTON1
Windows 2000/XP: The first X button is down.
MK_XBUTTON2
Windows 2000/XP: The second X button is down.
lParam
The low-order word specifies the x-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area.

The high-order word specifies the y-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area.
Return Value

If an application processes this message, it should return zero.

Remarks

Use the following code to obtain the horizontal and vertical position:

xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);

You can also use the MAKEPOINTS macro to convert the lParam parameter to a POINTS structure.

Notification Requirements

Minimum DLL Version None
Header Declared in Winuser.h, include Windows.h
Minimum operating systems Windows 95, Windows NT 3.1

See Also

Mouse Input Overview, GET_X_LPARAM, GET_Y_LPARAM, GetCapture, MAKEPOINTS, POINTS, SetCapture
also:

--------------
"Ask a question and your a fool for three minutes, don't ask it and your a fool for a lifetime." -Chinese Proverb

Xerxes Dynatos
 
I understand that, but I don't receive a msg from the CProgressCtrl with I click on it. What am I missing?
 
You got to first get the MK_LBUTTON, then the coordinates, then do a sendmessage(...,x,y);. If that doesn't work(cause it does for me), perhaps I shouldn't have answered.

--------------
"Ask a question and your a fool for three minutes, don't ask it and your a fool for a lifetime." -Chinese Proverb

Xerxes Dynatos
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top