具有热点效果和提示功能的工具栏

将工具栏设置成热点效果可以美化程序的界面。步骤不下

(1)创建一个基于对话框的应用程序。

(2)向对话框中添加一个按钮空间,并向程序中导入16个图标。

(3)在主窗口头文件中声明一个CToolBar类对象m_Toolbar和两个图像列表对象m_ImageList,m_HotImageList

其中,m_ImageList是工具栏按钮的图像列表对象,m_HotImageList是工具栏按钮的热点图像列表对象。

(4)在OnInitDialog函数中加载图标,关联图像列表,创建工具栏,代码如下

m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);
 m_HotImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON4));
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON5));
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON6));
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON7));
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON8));
 m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON9));
 m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON10));
 m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON11));
 m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON12));
 m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON13));
 m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON14));
 m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON15));
 m_HotImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON16));
 UINT array[10];
 for (int i=0;i<10;i++)
 {
         if (i==3||i==7)
         {
    array[i]=ID_SEPARATOR;
         }
         else
         {
    array[i]=i+1001;
         }
 }
 m_wndToolBar.CreateEx(this,TBSTYLE_FLAT);
 m_wndToolBar.SetButtons(array,10);
    m_wndToolBar.SetButtonText(0,"新建");
 m_wndToolBar.SetButtonText(1,"打开");
    m_wndToolBar.SetButtonText(2,"保存");
 m_wndToolBar.SetButtonText(4,"剪切");
 m_wndToolBar.SetButtonText(5,"复制");
    m_wndToolBar.SetButtonText(6,"粘贴");
 m_wndToolBar.SetButtonText(8,"打印");
 m_wndToolBar.SetButtonText(9,"帮助");
 m_wndToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);
 m_wndToolBar.GetToolBarCtrl().SetHotImageList(&m_HotImageList);
 m_wndToolBar.SetSizes(CSize(39,38),CSize(32,32));
 m_wndToolBar.EnableToolTips(TRUE);//激活工具栏的提示功能,
 RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);

为了显示提示信息,需要处理TTN_NEEDTEXT消息。

在对话框的消息映射部分添加ON_NOTIFY_EX映射宏,代码如下:

ON_NOTIFY_EX(TTN_NEEDTEXT,0,OnToolTipNotify)

添加消息处理函数OnToolTipNotify

//函数声明 afx_msg BOOL OnToolTipNotify(UNIT id,NMHDR* pNMHDR,LRESULT*pResult);

//函数定义:

BOOL CXJTU_MenuDlg::OnToolTipNotify(UINT id,NMHDR *pNMHDR,LRESULT* pResult)
{
 TOOLTIPTEXT *pTTT=(TOOLTIPTEXT*)pNMHDR;
 UINT nID=pNMHDR->idFrom;
 if (nID)
 {
  nID=m_wndToolBar.CommandToIndex(nID);
  if (nID!=-1)
  {
   m_wndToolBar.GetButtonText(nID,str);
   pTTT->lpszText=str.GetBuffer(str.GetLength());
   pTTT->hinst=AfxGetResourceHandle();
   return(TRUE);
  }
 }
 return(FALSE);
}

资源下载链接为: https://pan.quark.cn/s/1e68be2bff6a 这些压缩包文件里有大约60个小程序的源码示例,是学习小程序开发的优质资源。小程序是一种无需下载安装就能用的轻量级应用,广泛应用于生活服务、电商购物、社交互动等众多领域。研究这些源码,开发者能深入学习小程序开发技术最佳实践。wx_app-master.zip可能是一个基础小程序项目模板,涵盖小程序的基本结构组件使用。学习者可借此了解小程序的目录结构、配置文件,以及wxml、wxssJavaScript的结合方式。BearDiary-master.zipweapp-bear-diary-master.zip可能是日记类小程序示例,展示如何实现用户记录、查看管理个人日记等功能,包括处理用户输入、存储数据创建交互式界面。WXNews-master.zip仿知乎日报.zip可能是新闻阅读类小程序的源码,使用网络请求API获取实时新闻数据并展示。学习者能通过这些代码学习处理网络请求、动态加载数据设计适应性强的布局。wechat-weapp-gank-master.zip可能是一个类似“干货集中营”的技术分享平台小程序示例,涉及数据分类、搜索功能用户交互设计,可学习如何组织展示大量数据及实现筛选搜索功能。Xiaoxiazhihu (知乎日报) 微信小程序 d.zip是仿知乎日报的小程序,涉及数据同步、新闻详情页设计滑动效果实现,是模仿流行应用界面用户体验的良好学习案例。仿豆瓣电影-demo.zip提供电影信息查询展示功能,可能涉及API接口调用、数据解析以及评分评论系统实现,有助于开发者理解如何集成外部服务处理展示多媒体内容。仿今日头条app.zip类似今日头条的小程序,涵盖新闻推荐算法、个性化推荐推送通知等复杂功能,能让开发者学习处理大数据流提供个性化用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值