CToolBar CImageList 实现工具栏及提示功能 ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTip)

来源:互联网 发布:歌曲字幕特效软件 编辑:程序博客网 时间:2024/06/15 21:41

BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
//{{AFX_MSG_MAP(CTestDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTip)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTestDlg message handlers

BOOL CTestDlg::OnToolTip(UINT id, NMHDR *pNMHDR, LRESULT * pResult )
{
TOOLTIPTEXT *pTipText = (TOOLTIPTEXT*)pNMHDR;
UINT nID = pNMHDR->idFrom;

int nIndex = m_toolBar.GetToolBarCtrl().CommandToIndex(nID);
CString strMsg;
m_toolBar.GetButtonText(nIndex, strMsg);
strcpy(pTipText->lpszText, strMsg.GetBuffer(strMsg.GetLength()));
pTipText->hinst = AfxGetResourceHandle();
return TRUE;

}

BOOL CTestDlg::OnInitDialog()
{
CDialog::OnInitDialog();

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}

// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

m_imgList.Create(32, 32, ILC_COLOR24 | ILC_MASK, 1, 1);
m_imgList.Add(AfxGetApp()->LoadIcon(ICON_LOGIN));
m_imgList.Add(AfxGetApp()->LoadIcon(ICON_ASK));
m_imgList.Add(AfxGetApp()->LoadIcon(ICON_QUEST));

UINT Array[3] = {9000, 9001, 9002};

m_toolBar.Create(this);
m_toolBar.SetButtons(Array, 3);
m_toolBar.SetButtonText(0, _T("登陆"));
m_toolBar.SetButtonText(1, _T("提问"));
m_toolBar.SetButtonText(2, _T("探索"));
m_toolBar.GetToolBarCtrl().SetImageList(&m_imgList);
m_toolBar.SetSizes(CSize(50, 50), CSize(32, 32));
m_toolBar.EnableToolTips(TRUE);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);


return TRUE; // return TRUE unless you set the focus to a control
}

原创粉丝点击