Click here to Skip to main content

C / C++ / MFC

 
GeneralRe: Is SetCursorPos() Calling MouseMove ? Pinmemberyogeshs25-May-12 0:52 
GeneralRe: Is SetCursorPos() Calling MouseMove ? Pinmember«_Superman_»25-May-12 1:00 
GeneralRe: Is SetCursorPos() Calling MouseMove ? [Working] Pinmemberyogeshs25-May-12 3:55 
AnswerRe: Is SetCursorPos() Calling MouseMove ? Pinmember Randor 25-May-12 2:25 
Hi,
 
Rather than using SetCursorPos you could use the SendInput function[^]. This would allow you to set some 'extra info' for marking simulated user input.
 
For example:
 
BOOL setcursorposition(long x, long y)
{
	INPUT input = {0};
	input.type = INPUT_MOUSE;
	input.mi.dx = ((x - GetSystemMetrics(SM_XVIRTUALSCREEN)) * 65535) / (GetSystemMetrics(SM_CXVIRTUALSCREEN)-1);
	input.mi.dy = ((y - GetSystemMetrics(SM_YVIRTUALSCREEN)) * 65535) / (GetSystemMetrics(SM_CYVIRTUALSCREEN)-1);
	input.mi.dwFlags = MOUSEEVENTF_VIRTUALDESK | MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE;
	input.mi.dwExtraInfo = 0xC0DEDBAD;
	return SendInput(1, &input, sizeof(input));
}
 
void YourClass::OnMouseMove(UINT nFlags, CPoint point)
{
	if(0xC0DEDBAD != GetMessageExtraInfo())
	{
		//You would ignore the simulated input and do your processing here
	}
	YourBaseClass::OnMouseMove(nFlags, point);
}
 
Don't forget to convert client coordinates to screen before calling setcursorposition.
 
Best Wishes,
-David Delaune
GeneralRe: Is SetCursorPos() Calling MouseMove ? PinmemberJohnCz27-May-12 9:31 
Questionneed your help,to all programmers!!! Pinmemberambreen115324-May-12 1:54 
AnswerRe: need your help,to all programmers!!! PinmemberChris Losinger24-May-12 2:24 
AnswerRe: need your help,to all programmers!!! Pinmemberenhzflep24-May-12 2:27 
GeneralRe: need your help,to all programmers!!! Pinmemberambreen115324-May-12 2:32 
GeneralRe: need your help,to all programmers!!! Pinmemberenhzflep24-May-12 2:38 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.


Advertise | Privacy | Mobile
Web02 | 2.8.150123.1 | Last Updated 27 Jan 2015
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid