AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > VC编程

VC++实现显示透明的256色以上的图标

51自学网 2015-08-30 http://www.wanshiok.com

  三、程序代码

//////////////////////////////////////////////////////////////////////////////////////
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
 if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
  return -1;
 if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE |
  CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY |
  CBRS_SIZE_DYNAMIC) || !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
 {
  TRACE0("Failed to create toolbar/n");
  return -1; // fail to create
 }
 if (!m_wndStatusBar.Create(this) ||
  !m_wndStatusBar.SetIndicators(indicators,
  sizeof(indicators)/sizeof(UINT)))
 {
  TRACE0("Failed to create status bar/n");
  return -1; // fail to create
 }
 //设置ToolBar的图标列表
 m_ilTB.Create(32, 32, TRUE | ILC_COLOR8, 4, 0);
 HICON hIcon = NULL;
 hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON1), IMAGE_ICON, 32, 32, 0);
m_ilTB.Add(hIcon);
 hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON2), IMAGE_ICON, 32, 32, 0);
m_ilTB.Add(hIcon);
 hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDI_ICON3), IMAGE_ICON, 32, 32, 0);
 m_ilTB.Add(hIcon);
 hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON4), IMAGE_ICON, 32, 32, 0);
m_ilTB.Add(hIcon);
 m_wndToolBar.GetToolBarCtrl().SetImageList(&m_ilTB);
 // TODO: Delete these three lines if you don't want the toolbar to be dockable
 m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
 EnableDocking(CBRS_ALIGN_ANY);
 DockControlBar(&m_wndToolBar);
 return 0;
}

  四、小结


  本实例通过灵活的使用CImageList类的Create()函数实现了透明的256色位图的显示,其实Visual C++中的CImageList类远比我们想象的强大的多,例如通过图标的掩模操作也能实现包括透明显示的各种效果,只是没有我们这里介绍的方法简单而已。有兴趣的读者朋友可以仔细研究研究,相信一定会获益匪浅。

 
 
说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。

上一篇:用VC++实现应用程序窗口的任意分割  下一篇:分析百度“IE搜索伴侣”的源代码