|
How to append a new menu item to global system menu. I.e. to system menu of all applications. Well, for a single application it can be done easly by using GetSystemMenu() . But how to do it system wide?
I saw one application doing the same. When i checked the dlls, of the application I could see the MouseHookProc() in exported functions and I guess that its doing it by a global mouse hook. But after long R&D I couldn't figure out how. Any hints guys?
Thanks & Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
Well, even Jijo raj wasn't able to do that, so far...
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
I did expect you'll reply with some funny quotes.
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
This time I have no technical answer, unfortunately...
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Don't worry mate. At least you cheered up me!
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
You can ask of your site.
Of one Essence is the human race
thus has Creation put the base
One Limb impacted is sufficient
For all Others to feel the Mace
(Saadi )
|
|
|
|
|
Jijo,
I never tried this can't you use systemwide api hooking?
-Sarath.
"Great hopes make everything great possible" - Benjamin Franklin
|
|
|
|
|
yeah! That seems to be a possibility. I could hook GetSystemMenu() and add another system wide window message hook for WM_COMMAND and handle the message. But I strongly feels that there is some easy way to do it.
Well, thanks Sarath for the thought. Ofcourse you always "Shares your thought"!
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
What about Using EnumWindows to get all top level windows and then modify the menu? Also you will have to add hook for new window creation notifications. I dont know if it will work but just a thought..
Regards,
Sandip.
|
|
|
|
|
That's also a possibility to experiment. I think, in order to handle the message, i've to add one message hook as well. isn't it? Well, thanks a lot Sandeep and my 5 points.
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
I haven't tried it with 'Mouse Hook', but did with 'Windows Procedure Hook'. Installed a hook for WH_CALLWNDPROC (Windows procedure) and handled the 'WM_INITMENU' message in the hook. Once you get the window handle in the hook, I hope you don't need any more clues....
- Malli...!
|
|
|
|
|
That seems to be a cool Idea! Let me try it out. Thanks a lot malli, and please accept my 5 points.
Regards,
Jijo.
_____________________________________________________
http://weseetips.com[ ^] Visual C++ tips and tricks. Updated daily.
|
|
|
|
|
My pleasure.....
- Malli...!
|
|
|
|
|
Hi guys,
I downloaded a zip utility source code. When I used it in my program I received:
..\Zip_Utils\zip.cpp(2992) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
I have the source. Of course, I can easily add '#include "stdafx.h"', but that is not the point.
The question is: what is so special of "stdafx.h" that require including it in every .cpp that I add???
P.S. I don't know does it matter, but I'm writing in VS2005 in C++ for Windows Mobile 5.0, native, without STL, WTL, MFC.
|
|
|
|
|
akirilov wrote: The question is: what is so special of "stdafx.h" that require including it in every .cpp that I add???
Because it's the key to using the precompiled header (.pch) file.
The bigger question is how was the project's author able to compile the project without making the changes you've had to?
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
Because it's the key to using the precompiled header (.pch) file.
So I have to include "stdafx.h" in every .cpp that I'm using?
Than probably I have to start reading about precompiled header (.pch) file...
|
|
|
|
|
akirilov wrote: So I have to include "stdafx.h" in every .cpp that I'm using?
Yes, if that's the way the project has been configured. You can, however, turn it off for individual files (e.g., C files).
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
|
Thank you, that was very helpful!!!
|
|
|
|
|
Hi all
How can i set validation of edit box for numeric and decimal?And orevent string entry.
|
|
|
|
|
npvc wrote: How can i set validation of edit box for numeric and decimal?
Are you referring to the ES_NUMBER style, or possibly a masked-edit control?
"Love people and use things, not love things and use people." - Unknown
"The brick walls are there for a reason...to stop the people who don't want it badly enough." - Randy Pausch
|
|
|
|
|
validation like on the C#?
Of one Essence is the human race
thus has Creation put the base
One Limb impacted is sufficient
For all Others to feel the Mace
(Saadi )
|
|
|
|
|
Below gives the Senario.
CMultiThreadDlg : is the class Name
m_Dlg : is the variable name defined for Edit Box.
Here when i click a Button, I call AfxBeginThread(....).
MyThreadProc is called.
I want to display in Edit Box , from 1 to 100 (say)..
But it gives Exception. ASSERT Fail...
So how can i display Text in Edit Box using AfxBeginThread Procedure..
UINT MyThreadProc( LPVOID pParam )
{
CMultiThreadDlg *pObject = (CMultiThreadDlg *)pParam;
for(int i=0;i<100;i++)
{
pObject->UpdateData(TRUE);
CString str = "";
str.Format("%d",i);
pObject->m_Dlg.SetWindowText(str);
pObject->UpdateData(FALSE);
pObject->UpdateWindow();
Sleep(1000);
}
return 0; // thread completed successfully
}
void CMultiThreadDlg::OnBnClickedOk()
{
// TODO: Add your control notification handler code here
CMultiThreadDlg pNewObject = new CMultiThreadDlg();
AfxBeginThread(MyThreadProc, pNewObject);
}
Please Reply.
Thanks..
|
|
|
|
|
Well, you don't create your dialog at all, just instantiate its class and hand it over to the thread as a parameter. You need to call DoModal or Create on the dialog to actually have the dialog around. And don't try to fiddle with windows/controls in a different thread than they were created in.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
|
|
|
|
|
I'm assuming you're not showing a lot of your code, and that the dialog display just fine until you press the button.
As for the threading stuff, as code-o-mat said, you can't use MFC in a thread. That's not completely true, but you have to be very careful. Anything that uses MCFs HWND <-> hWnd (etc) maps will fail. Feel free to use CString.
You have a couple of choices. You can either store the HWND for the edit control as a member variable, and use SetWindowText (m_hMyEditWnd, ), etc, or you could register a message, and post that from the thread to the dialog window to handle at its leisure.
See http://www.flounder.com/workerthreads.htm[^] for more information. It's a site worth reading everything on.
Iain.
|
|
|
|