如题。
解决方案 »
- MFC程序。。求解释,有点不懂
- wininet是一个非常恶心的东西。。socket才是王道。。
- 学串口通信或数据库编程是看类似的实例代码好还是看专业的串口通信或数据库编程教材好?
- 新手请教:每天得分是怎么计算的
- 大家帮忙看看::Static控件:鼠标按下时画红色字符,鼠标释放时画蓝色字符!!!
- 关于如何重画CScrollView的滚动条的问题?
- 能不能将数据就保存到本应用程序的 exe 文件!
- 这个错误怎么回事
- ??????????如何用改变屏幕的分辨率?高手请进!
- VC++中如何读取并比较SQL server数据库中一个表的某行记录
- 如何在对话框程序里面加入工具栏?
- 请问VC比DELPHI,谁更底层一点?
1.先添加工具栏(IDR_TOOLBAR1)资源,并画好各个按钮2.在对话框类声名中添加成员变量 CToolBar m_wndtoolbar;3.在对话框类的OnInitDialog() 中添加如下代码//添加一个平面工具条
if (!m_wndtoolbar.CreateEx( this,TBSTYLE_FLAT , WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS,
CRect(4,4,0,0)) || !m_wndtoolbar.LoadToolBar(IDR_TOOLBAR1) )
{
TRACE0("failed to create toolbar\n");
return FALSE;
}
m_wndtoolbar.ShowWindow(SW_SHOW);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0); 技巧:
在菜单和工具栏之间显示一条分割线,方法如下:
加入一个Picture控件,在属性中将Style中的"下沉"选中ToolTip的添加
1.在对话框类定义中手工添加消息映射函数的定义,如下:
//{{AFX_MSG(CDlgMenuToolbarDlg)
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg BOOL OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult); //此句位添加的
//}}AFX_MSG
DECLARE_MESSAGE_MAP()2.在对话框的.cpp中添加函数的实现代码
BOOL CTestdlgDlg::OnToolTipText(UINT, NMHDR *pNMHDR, LRESULT *pResult)
{
ASSERT(pNMHDR->code == TTN_NEEDTEXTA || pNMHDR->code == TTN_NEEDTEXTW);// UNICODE消息
TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR;
TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR;
//TCHAR szFullText[512];
CString strTipText;
UINT nID = pNMHDR->idFrom;if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) ||
pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & TTF_IDISHWND))
{
// idFrom为工具条的HWND
nID = ::GetDlgCtrlID((HWND)nID);
}if (nID != 0) //不为分隔符
{
strTipText.LoadString(nID);
strTipText=strTipText.Mid(strTipText.Find("\n",0)+1);
#ifndef _UNICODE
if (pNMHDR->code == TTN_NEEDTEXTA)
{
lstrcpyn(pTTTA->szText, strTipText, sizeof(pTTTA->szText));
}
else
{
_mbstowcsz(pTTTW->szText, strTipText, sizeof(pTTTW->szText));
}
#else
if (pNMHDR->code == TTN_NEEDTEXTA)
{
_wcstombsz(pTTTA->szText, strTipText,sizeof(pTTTA->szText));
}
else
{
lstrcpyn(pTTTW->szText, strTipText, sizeof(pTTTW->szText));
}
#endif*pResult = 0;// 使工具条提示窗口在最上面
::SetWindowPos(pNMHDR->hwndFrom, HWND_TOP, 0, 0, 0, 0,SWP_NOACTIVATE|
SWP_NOSIZE|SWP_NOMOVE|SWP_NOOWNERZORDER);
return TRUE;
}
return TRUE;}3.在对话框的.cpp中添加消息映射BEGIN_MESSAGE_MAP(CDlgMenuToolbarDlg, CDialog)
//{{AFX_MSG_MAP(CDlgMenuToolbarDlg)
ON_WM_PAINT()
ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipText ) //此句为添加
//}}AFX_MSG_MAP
END_MESSAGE_MAP()ALON