|
Wow - you've got more friends than I do, looks like you get a 1, whatever you post.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
hehe I haven't seen enough of it yet to guess but I'm suspicious of any number of the Soapbox wack jobs we have in there. But the more obvious conclusion is that it's my charming teddy bear personality.
led mike
|
|
|
|
|
How about a little more fishing and a little less yakkin over there
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
LMAO thanks for that early morning humor! Here's some more [^]if you want a laugh
led mike
|
|
|
|
|
|
WTF Dude? Look at this thread, I have no one votes any more, how can that happen?
led mike
|
|
|
|
|
unix_master01 wrote: So does anybody know the bare minimum PPP protocol implementatation, bare minimum just to send and receive. In C?
I suspect it involves more literacy than you seem to be bringing to the equation.
Christian Graus
Please read this if you don't understand the answer I've given you
"also I don't think "TranslateOneToTwoBillion OneHundredAndFortySevenMillion FourHundredAndEightyThreeThousand SixHundredAndFortySeven()" is a very good choice for a function name" - SpacixOne ( offering help to someone who really needed it ) ( spaces added for the benefit of people running at < 1280x1024 )
|
|
|
|
|
hi
how to get message from other window such as OnMessage in Mfc
Every new thing you learn,Gives you a new personality.
|
|
|
|
|
In a form? If so, maybe override WndProc().
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
in Mfc
<br />
#define WM_MESSAGE WM_USER+1000<br />
ON_MESSAGE(WM_MESSAGE,Function)<br />
but i don't know how to create in vc.net
Every new thing you learn,Gives you a new personality.
|
|
|
|
|
As Mark said, override WndProc() to react on specific messages. Here is a C# example:
protected override void WndProc(ref Message m) {
if (m.Msg==LPWIN_Constants.WM_HOTKEY) {
int lParam=(int)m.LParam;
if (lParam==0x00580003) Activate();
if (lParam==0x00410008) ArchiveWindow();
}
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
|
Using Events is also another option for notifying another window.
|
|
|
|
|
Hello, everyone. I am designing an application that is intended for use with a touch-screen monitor, so all of the GUI elements need to be big, friendly, and easy to poke.
I would like to provide context-sensitive help for various controls on the main form, and thought that I might just watch for the WM_HELP message that is sent whenever a control is clicked on when in "What's This?" mode, entered by clicking the "?" help button on the title bar. That bit works fine, but I am running into an unexpected problem.
Since the "?" button is much too small for my touch-screen requirements, I thought that I would include a larger help button elsewhere on the form that would accomplish the same thing. I have been totally unable to find any way to programmatically trigger "What's This?" mode, though. The "?" button doesn't even seem to send a message to WndProc() when it is clicked. Does anyone know what occurs when this button is clicked, and how to accomplish the same thing programmatically?
If not, does anyone have any suggestions for providing context-sensitive help that doesn't require something silly, like putting a check in the form of if(helpMode) { ShowHelpMessage(this); return; } at the start of the click event for every single control?
Thanks very much!
|
|
|
|
|
Oddball wrote: and thought that I might just watch for the WM_HELP message
I don't know but I would not think that at all. If I needed to know I would start here[^].
led mike
|
|
|
|
|
Mike,
Thank you for the suggestion, but you really did not address my question. As I stated, I am recognizing when a user clicks on a control when in "What's This?" mode with no problems. Everything works great if the user can click the help ("?") button in the title bar and then on another control. Since my requirements are that a touchscreen be used for the interface, however, I need to create a larger button that operates like the titlebar help button.
I am unable to enter "What's This?" mode programmatically. That is what I was asking about. I've searched all over, including in reference books, with no results, and thought that I'd seek expert experience as a last resort. Respectfully, directing me to Google with a search phrase that general is insulting.
|
|
|
|
|
Oddball wrote: directing me to Google with a search phrase that general is insulting.
Yes it is, to me since I obviously did not read your post thoroughly. I apologize for that but I was not trying to insult you.
led mike
|
|
|
|
|
Ok, I read your OP again and this several times. Since you are on a touch screen you wan the user to click once on your button and then a second time on the control to kick off Context Sensitive Help yes? If that's correct then I don't know if this will help you but the '?' button sends a WM_SYSCOMMAND message.[^]
led mike
|
|
|
|
|
Mike,
I apologize for not responding sooner, but I was a victim of whatever happened to the boards yesterday, and couldn't log in. Sorry for getting snippy back there, too. I should know better than to check up on message boards when my day isn't going well to begin with. I suppose I could have made my OP a little more clear, too.
In any event, the WM_SYSCOMMAND message sounds like exactly what I need. I came to the conclusion before that the "?" button was not sending a message by trying to watch the behavior of the WndProc method when it was pressed. With how many messages go through that puppy, I missed it.
I've been playing around with Win32 messaging since yesterday, which is new to me, and I can't quite seem to get this rolling. Perhaps you could shed some more light on this for me? I believe that this is the last part of the solution to my problem. I've cobbled together the following lines in a button click handler to attempt to activate "What's This?" mode:
int WM_SYSCOMMAND = 0x112;
IntPtr SC_CONTEXTHELP = IntPtr(0xF180);
Windows::Forms::Message msg = Windows::Forms::Message::Create(this->Handle, WM_SYSCOMMAND, SC_CONTEXTHELP, IntPtr(0));
this->WndProc(msg);
It compiles without complaint, but nothing happens (that I can detect, anyway) when the button is clicked. Can you see what I am screwing up or missing?
Thanks for your patience, and I appreciate the help.
|
|
|
|
|
Oddball wrote: I've been playing around with Win32 messaging since yesterday
Well I have no idea if this is going to work since I've never tried it either but:
Oddball wrote: this->WndProc(msg);
You can't just send the message to your windows procedure. I would imagine if it's going to work at all you have to post or send the message.
PostMessage[^]
That said you may not be able to leverage the system in that way if they never intended for it to be used that way. You might have to track the state yourself and then invoke the help after they click on the control they want the help on.
Does that make sense?
led mike
|
|
|
|
|
Mike,
led mike wrote: You might have to track the state yourself and then invoke the help after they click on the control they want the help on.
I was afraid of that. I thought there might be a more elegant solution with hijacking the "?" button functionality, but I am getting the impression that I am now just over-complicating the issue.
I'll give it a shot, but one last question. We're rapidly leaving my realm of C++/CLI experience, (which isn't that broad anyway, since I am much more familiar with C#) so I apologize if this next one is borne of ignorance. PostMessage does not appear to be a .Net method, and MSDN indicates that it lives in user32.dll. How can I use it? Is this where C++/CLI's ability to use unmanaged code comes in? If a complete answer to this would be too lengthy, I'll be satisfied with a "you need to go learn about X some more" response this time.
Thanks again.
|
|
|
|
|
Oddball wrote: Is this where C++/CLI's ability to use unmanaged code comes in?
Yes but I think the idea of tracking the state yourself and then using Luc's provided API is far simpler and should satisfy your requirements.
led mike
|
|
|
|
|
Mike,
It appears that the system was just not designed to do what I am after. I will have to come up with a different way to provide the functionality I need.
Thank you for your help.
|
|
|
|
|
Hi,
Google told me there is a CodeProject article[^] that should interest you.
Luc Pattyn [Forum Guidelines] [My Articles]
This month's tips:
- before you ask a question here, search CodeProject, then Google;
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get;
- use PRE tags to preserve formatting when showing multi-line code snippets.
|
|
|
|
|
Luc,
So much of that article was just so close to what I needed that it was a frustrating read! It had a great deal of information on how to provide help once context-sensitive help mode is engaged by the user, but not how to engage it programmatically.
I appreciate all the knowledge I can get, though, and I picked up a few ideas from there for other projects. Thanks very much!
|
|
|
|