Message Bar items are messages with a navigation tree item link that, when clicked, navigates the user to that location in the WMC.
Add a message bar item with NavInsertItem.
void AddMessageBarItem(LPCWSTR text, LPCWSTR link) { // First get the root of the MESSAGEBAR domain NAVSETITEM messageBarRootData; memset(&messageBarRootData, 0, sizeof(NAVSETITEM)); if( !NavGetItem(_T("MESSAGEBAR"), &messageBarRootData) ) { return; // Failed to find MESSAGEBAR root } NavHandle messageBarRoot = messageBarRootData.hItem; // Now add a simple message bar item NAVSETITEM newItem; memset(&newItem, 0, sizeof(newItem)); newItem.flags = NI_FLAG_MESSAGEBAR_ICONWARNING; // The icon we want to show. NI_FLAG_MESSAGEBAR_ICONINFO, NI_FLAG_MESSAGEBAR_ICONWARNING and NI_FLAG_MESSAGEBAR_ICONSHIELD newItem.EventMask = NI_EVENT_MOUSE_LCLICK; // Need click events to navigate somewhere when the link is clicked newItem.strLabel = L"This is a message bar message"; newItem.strDescription = L"NAVIGATIONTREE\\ControlPanel\\Events"; // Override description field as the FQN or alias to navigate to when the link is clicked newItem.lParam = 0; // Custom context data newItem.pInterface = ¬ificationInterface; // Interface to handle messages from the message bar NavInsertItem(hMessageBar, _T("MyComponentWarningEvents"), &newItem); } |
Items added in the manner shown above display the strLabel text, followed by a link that says "Go There". If you click the link, the WMC navigates to the location specified in strDescription.
Flag | Description |
---|---|
NI_FLAG_MESSAGEBAR_ICONWARNING NI_FLAG_MESSAGEBAR_ICONINFO NI_FLAG_MESSAGEBAR_ICONSHIELD | The type of icon to show. Mutually exclusive. |
NI_FLAG_MESSAGEBAR_NOTIFY | Notify the item of the click. Without this flag the default behaviour is to go to a navigation location. Calls the NavItemNotify handler of the notification interface supplied in NavInsertItem |
NI_FLAG_MESSAGEBAR_USERXAML | You wish to supply the full XAML for the item. See below for details. |
NI_FLAG_MESSAGEBAR_NOTIFY means call NavNotifyItem, else calls NavGotoItem. If NI_FLAG_MESSAGEBAR_NOTIFY then we notify the tag, otherwise we goto the description
NI_FLAG_MESSAGEBAR_USERXAML