|
Changes to the sample project:
CMainFrame::OnCreate()
CMainFrame - Added handlers for Tray menu items.
stdafx.h
SystemTray.cpp/h - I marked my changes/additions with "(md)".
SystemDrayDemo.cpp - I let the frame get displayed so you can use the new Tray
menu.
BalloonDlg.cpp/h - A dialog used by the Tray/Show Balloon command.
The new methods in CSystemTray are:
CSystemTray() - Added parameters for the balloon tooltip.
CreateEx() - Like Create() but has extra parameters for the balloon tooltip.
On NT 4 and 9x, it just calls Create().
ShowBalloon() - Pops up a balloon tooltip over the tray icon (Win 2K only).
HideIcon() - On Win 2K, the icon is hidden (using the API) instead of deleted.
ShowIcon() - On Win 2K, the icon is unhidden. It will reappear in the position
it was in prior to the HideIcon().
HideIcon() and ShowIcon() have a BOOL parameter that's used only by
MoveToRight() to force the icon to be deleted and re-added on Win 2K. This
parameter shouldn't be formally documented, since the caller should still
call just "HideIcon()" and "ShowIcon()".
Bug fixes in CSystemTray:
I added a few AfxIsValidString() calls to validate LPCTSTR parameters.
I also used lstrcpyn() to copy strings into the NOTIFYICONDATA
struct to guard against overrunning the char arrays.
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Chris Maunder is the co-founder of
CodeProject and
ContentLab.com, and has been a prominent figure in the software development community for nearly 30 years. Hailing from Australia, Chris has a background in Mathematics, Astrophysics, Environmental Engineering and Defence Research. His programming endeavours span everything from FORTRAN on Super Computers, C++/MFC on Windows, through to to high-load .NET web applications and Python AI applications on everything from macOS to a Raspberry Pi. Chris is a full-stack developer who is as comfortable with SQL as he is with CSS.
In the late 1990s, he and his business partner David Cunningham recognized the need for a platform that would facilitate knowledge-sharing among developers, leading to the establishment of CodeProject.com in 1999. Chris's expertise in programming and his passion for fostering a collaborative environment have played a pivotal role in the success of CodeProject.com. Over the years, the website has grown into a vibrant community where programmers worldwide can connect, exchange ideas, and find solutions to coding challenges. Chris is a prolific contributor to the developer community through his articles and tutorials, and his latest passion project,
CodeProject.AI.
In addition to his work with CodeProject.com, Chris co-founded ContentLab and DeveloperMedia, two projects focussed on helping companies make their Software Projects a success. Chris's roles included Product Development, Content Creation, Client Satisfaction and Systems Automation.