// An encapsulation of the Windows HMENU.
CuMenu MenuTray.LoadMenu(IDR_MENU_MYMENU);
CuMenu *pTrackMenu = MenuTray.GetSubMenu(0);
pTrackMenu->TrackPopupMenu(TPM_BOTTOMALIGN, pt.x, pt.y, this->GetSafeHwnd() );
MenuTray.DestroyMenu();
// CuMenu.h
class CuMenu
{
HMENU m_hMenu;
public:
CuMenu(void);
~CuMenu(void);
BOOL DestroyMenu();
BOOL LoadMenu( UINT nIDResource );
CuMenu* GetSubMenu( int nPos ) const;
BOOL Attach( HMENU hMenu );
BOOL TrackPopupMenu(
UINT nFlags,
int x,
int y,
HWND hWnd,
LPCRECT lpRect = 0
);
};
// CuMenu.cpp
CuMenu::CuMenu(void)
:m_hMenu(NULL)
{
}
CuMenu::~CuMenu(void)
{
DestroyMenu();
}
BOOL CuMenu::LoadMenu( UINT nIDResource )
{
m_hMenu = ::LoadMenu(::GetModuleHandle(NULL), MAKEINTRESOURCE(nIDResource));
return ( m_hMenu != NULL );
}
CuMenu* CuMenu::GetSubMenu( int nPos ) const
{
HMENU hMenu = ::GetSubMenu( m_hMenu, nPos );
static CuMenu SubMenu;
SubMenu.Attach(hMenu);
return &SubMenu;
}
BOOL CuMenu::Attach( HMENU hMenu )
{
m_hMenu = hMenu;
return ( m_hMenu != NULL );
}
BOOL CuMenu::TrackPopupMenu(
UINT nFlags,
int x,
int y,
HWND hWnd,
LPCRECT lpRect /*= 0*/
)
{
return ::TrackPopupMenu(m_hMenu, nFlags, x, y, 0, hWnd, lpRect);
}
BOOL CuMenu::DestroyMenu()
{
return ::DestroyMenu(m_hMenu);
}
2010年1月3日 星期日
CuMenu - An encapsulation of the Windows HMENU.
訂閱:
張貼留言 (Atom)
很明顯的並沒有實作所有的功能, 只將現在需要的功能先實作出來, 其他的等要用到在加, 花個五分鐘包一下, 好用又不太花時間.
回覆刪除請教一下,
回覆刪除要如何讓程式碼po出來的時候,有顏色跟格式?
預設的編輯模式,似乎沒有這些功能..
http://alexgorbatchev.com/wiki/SyntaxHighlighter 好用的程式碼顯示器 , 我是用這個, 那怎麼掛到Blogger 其實很容易,但是用打的很麻煩, 有空過來直接講五分鐘就行了!
回覆刪除