本文整理汇总了C++中Skin::SetMouseLeaveEvent方法的典型用法代码示例。如果您正苦于以下问题:C++ Skin::SetMouseLeaveEvent方法的具体用法?C++ Skin::SetMouseLeaveEvent怎么用?C++ Skin::SetMouseLeaveEvent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Skin
的用法示例。
在下文中一共展示了Skin::SetMouseLeaveEvent方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ShowMenu
//.........这里部分代码省略.........
EnableMenuItem(menu, IDM_DELETELOGFILE, MF_BYCOMMAND | MF_GRAYED);
EnableMenuItem(menu, IDM_STOPLOG, MF_BYCOMMAND | MF_GRAYED);
}
else
{
EnableMenuItem(
menu,
(GetLogger().IsLogToFile()) ? IDM_STARTLOG : IDM_STOPLOG,
MF_BYCOMMAND | MF_GRAYED);
}
if (rainmeter.m_Debug)
{
CheckMenuItem(menu, IDM_DEBUGLOG, MF_BYCOMMAND | MF_CHECKED);
}
HMENU allSkinsMenu = GetSubMenu(menu, 4);
if (allSkinsMenu)
{
if (!rainmeter.m_SkinRegistry.IsEmpty())
{
// "Open folder" = 0, "Disable dragging" = 1, separator = 2
DeleteMenu(allSkinsMenu, 3, MF_BYPOSITION); // "No skins available" menuitem
CreateAllSkinsMenu(allSkinsMenu);
}
if (rainmeter.m_DisableDragging)
{
CheckMenuItem(allSkinsMenu, IDM_DISABLEDRAG, MF_BYCOMMAND | MF_CHECKED);
}
}
HMENU favoritesMenu = GetSubMenu(menu, 5);
if (favoritesMenu)
{
if (!rainmeter.m_Favorites.empty())
{
DeleteMenu(favoritesMenu, 0, MF_BYPOSITION); // "No skins available" menuitem
CreateFavoritesMenu(favoritesMenu);
}
}
HMENU layoutMenu = GetSubMenu(menu, 6);
if (layoutMenu)
{
if (!rainmeter.m_Layouts.empty())
{
DeleteMenu(layoutMenu, 0, MF_BYPOSITION); // "No layouts available" menuitem
CreateLayoutMenu(layoutMenu);
}
}
if (skin)
{
HMENU rainmeterMenu = menu;
menu = CreateSkinMenu(skin, 0, allSkinsMenu);
InsertMenu(menu, IDM_CLOSESKIN, MF_BYCOMMAND | MF_POPUP, (UINT_PTR)rainmeterMenu, L"Rainmeter");
InsertMenu(menu, IDM_CLOSESKIN, MF_BYCOMMAND | MF_SEPARATOR, 0, nullptr);
}
else
{
InsertMenu(menu, 13, MF_BYPOSITION | MF_SEPARATOR, 0, nullptr);
// Create a menu for all active skins
int index = 0;
std::map<std::wstring, Skin*>::const_iterator iter = rainmeter.m_Skins.begin();
for (; iter != rainmeter.m_Skins.end(); ++iter)
{
Skin* skin = ((*iter).second);
HMENU skinMenu = CreateSkinMenu(skin, index, allSkinsMenu);
InsertMenu(menu, 13, MF_BYPOSITION | MF_POPUP, (UINT_PTR)skinMenu, skin->GetFolderPath().c_str());
++index;
}
// Add update notification item
if (rainmeter.m_NewVersion)
{
InsertMenu(menu, 0, MF_BYPOSITION, IDM_NEW_VERSION, GetString(ID_STR_UPDATEAVAILABLE));
HiliteMenuItem(rainmeter.GetTrayIcon()->GetWindow(), menu, 0, MF_BYPOSITION | MF_HILITE);
InsertMenu(menu, 1, MF_BYPOSITION | MF_SEPARATOR, 0, nullptr);
}
}
HWND hWnd = WindowFromPoint(pos);
if (hWnd != nullptr)
{
Skin* skin = rainmeter.GetSkin(hWnd);
if (skin)
{
// Cancel the mouse event beforehand
skin->SetMouseLeaveEvent(true);
}
}
DisplayMenu(pos, menu, skin ? skin->GetWindow() : rainmeter.m_TrayIcon->GetWindow());
DestroyMenu(menu);
m_MenuActive = false;
}