|
hi,
i want to send a mouseclick to a window(hwnd), i tried this with the sendmessage funktion, but not every control work with it, eg. buttons, the quit icon on the right, top side...
know someone what i had to do in this case?
thanks
|
|
|
|
|
Goggelmoggel wrote: but not every control work with it...the quit icon on the right, top side...
Post that window a WM_CLOSE message instead.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
i doesn't want only to close the window. i want to send mouse messages to click some buttons and other controlls.
|
|
|
|
|
Goggelmoggel wrote: i doesn't want only to close the window.
Then why would you want to click "the quit icon on the right, top side?"
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Goggelmoggel wrote: i tried this with the sendmessage funktion,
Can you show, what you have tried ?
For buttons you can try sending BM_CLICK message.
|
|
|
|
|
i tried this:
SendMessage (theHwnd, WM_LBUTTONDOWN, /*the constant for lmousekey, i can#t remember*/, MAKELPARAM(y,x));
the "selected" button or controll gets the tab-focus but isn't pressed
|
|
|
|
|
Because you are not remembering that normal buttons activate on the release of a mouse button, not the press. You also need to send it a WM_LBUTTONUP message as well, or directly send a "click" message to the buttn control itself.
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
i also tried with WM_LBUTTONDONW, and then a second line with WM_LBUTTONUP but it doesn't works, i don't know why???
|
|
|
|
|
Without seeing any code, I cannot tell you what is going wrong. However, prasad_som responded to your message showing how to trick the button into thinking it has been pressed.
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
Goggelmoggel wrote: i tried this:
SendMessage (theHwnd, WM_LBUTTONDOWN, /*the constant for lmousekey, i can#t remember*/, MAKELPARAM(y,x));
Either of this will work in case of button,
::SendMessage(hOwnerWnd,WM_COMMAND,MAKELONG(IDOK,BN_CLICKED),0);
::SendMessage(hButton,BM_CLICK,0,0);
Watch handles need to pass for SendMessage .
|
|
|
|
|
but i want to referece the button or anything else, on any possition x,y in window?!
only this, an nothing more
|
|
|
|
|
Sending WM_LBUTTONDOWN to parent window will not work here, as parent window will receive this message, which does not effect in clicking the control.
You need to identify window from a particular point, then send WM_LBUTTONDOWN and WM_LBUTTONUP messages in sequnce to simulate click. Using X,Y values you have mentioned get window at that point using WindowFromPoint send messages mentioned above.
Use code smething like this,
const long nClickingPoint= 5;
POINT pt;
pt.x = x + nClickingPoint;
pt.y = y + nClickingPoint;
CWnd * pCtrl = WindowFromPoint(pt);
pCtrl->SendMessage(WM_LBUTTONDOWN,0,MAKELPARAM((nClickingPoint),(nClickingPoint)));
pCtrl->SendMessage(WM_LBUTTONUP,0,MAKELPARAM((nClickingPoint),(nClickingPoint)));
Remember, WindowFromPoint requires screen co-ordinates to identify window. Use ClientToScreen appropriately for that.
|
|
|
|
|
I've nearly got everything working in my bit of code but I want control over what Request headers I send. I can add Request headers via WinHttpAddRequestHeaders() but for whatever reason I cannot get rid of one Request header. I would like the "Connection: Close" header to just never exist (ie remove it completely) in the HTTP stream that I send. To this effect I thought the following bit of code would work
WinHttpAddRequestHeaders(hRequest, L"Connection: Close", -1L, WINHTTP_ADDREQ_FLAG_REPLACE);
I tried many variations of just "Connection" or "Connection: " etc and none of them seem to get rid of the "Connection" Request header. I think I did a decode of the error and it says the header does not exist. However when I fire up my packet capture program sure enough it's there.
Any help or pointer to what I'm misunderstanding would be greatley appreciated. I trawled this site and the net and couldn't find anything.
PS: I had no such problem with this using CInternetSession etc in my old version of the code but unfortunately I need control over timeouts and retries etc and these functions have had it broken so I resorted to winhttp hoping for something better.
Cheers
Jbem
|
|
|
|
|
Meh, for the record I've convince myself that there is no way to remove the "Connection" request header in winhttp since I can remove any other header so it seems the winhttp forces this header to exist whether you like it or not. Damn stupid but what can you do. Going to port over to winiinet (3rd times a charm) which I think doesn't have this braindamaged idea that it knows better than I what I want.
|
|
|
|
|
how to create tab control with one dialog for all tabs.
|
|
|
|
|
The same way you would if you used a different dialog for each tab/page. Why would you want to this, though? Having a multi-page property sheet where all of the pages are the same seems odd.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
i want to create a dynamic tabs in tab control.how to do this .pls help me?
|
|
|
|
|
As far as I know, tabs are always added at run-time (i.e., dynamically).
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
how to capture mouse pointer is inside an image or not?
Arise Awake Stop Not Till ur Goal is Reached.
|
|
|
|
|
Use GetCursorPos .
POINT pt;
GetCursorPos(&pt);
ScreenToClient(&pt);
CRect rcTarget;
GetClientRect(&rcTarget);
BOOL b = rcTarget.PtInRect(pt);
-- modified at 10:11 Wednesday 28th March, 2007
I'm assuming image will be hosted on some window.
|
|
|
|
|
Capturing the mouse means that all of its movement and click-related messages gets sent to a particular window/control even if the mouse is not over that control. For example, if you click and hold down the mouse button on a normal button control, and while holding it down, move the mouse over an edit control, the mouse cursor will not (or is not supposed to) change to an "I-Bar". This is because the button control has "captured the mouse" when you clicked-down on it, so the other controls will not react to it.
(As an aside, correct mouse capture is a hard thing to get working correctly in some 3rd-party GUI libraries.)
It sounds like you want to just know when the mouse of over your image? If so, the control used to display the image (if you are not drawing it indirectly yourself) should get WM_MOUSEMOVE messages when the mouse moves over the control, and you can get the cursor location at that point to determine where in the image the mouse is located at.
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
I'm trying to use Message IPCs (PostMessage and GetMessage) to broadcast a message from one process to other processes. These are plain console process without Windows.
I was wondering if it is possible at all to do so.
Here is the code snap, which broadcasts message and then rcv in same process. First i'm trying to do it in same process to check if it works at all?
int main()
{
UINT uTestMsg; // message identifier
uTestMsg = RegisterWindowMessage("mess");
PostMessage(HWND_BROADCAST, uTestMsg , 0, 0);
Sleep(100);
BOOL bRet;
MSG msg;
while(1)
{
bRet = GetMessage( &msg, NULL,0,0);
cout << endl <<"bRet = " << bRet << endl;
}
return 0;
}
|
|
|
|
|
|
param_nirvana wrote: I'm trying to use Message IPCs (PostMessage and GetMessage) to broadcast a message from one process to other processes. These are plain console process without Windows .
Well, generally in order to send a message, you need to send it somewhere. This is usually some kind of window. In order to receive a message, you need a message pump that is associated with... you guessed it! A window!
Your console application(s) (if you have the source code for them), can create an invisible window with a specific class and/or name so you can locate them and send them messages.
You may want to look into other IPC mechanisms such as named pipes or a shared memory area (memory mapped file backed by the paging file). No , I cannot provide source code for this, or take the place of a simple CodeProject, Google or MSDN search for the terms: Named Pipe, but you have a place to start.
Oh, and be patient when waiting for a response - the people that help out here do not get paid to help you out, we do so at our pleasure, not yours. If you want to demand things, feel free to pay for the right to do so. (And my short-term rates start at $80/hour with a 4-hour minimum, and that includes the CP-Newbie discount. )
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
James R. Twine wrote: And my short-term rates start at $80/hour with a 4-hour minimum, and that includes the CP-Newbie discount.
What about other's.
|
|
|
|
|