让工具条显示256色图像

2016-01-29 12:01 50 1 收藏

让工具条显示256色图像,让工具条显示256色图像

【 tulaoshi.com - C语言心得技巧 】


如何让工具条显示256色图像 编译:hangwire

下载范例源代码问题:    论坛中有很多人提出:基于Windows的程序如资源管理器(Explorer.exe),IE等都能显示出漂亮的工具栏图像和图标。但是,用MFC开发的应用程序一般都只能显示16色的工具栏图像和列表视图(如CListView)图像,而无法显示在资源中创建的256色图标和位图。这是为什么? 解答:    工具栏和列表视图都是把自己的图像存储在图像列表中。这个图像列表实际上就是一个图像清单。它是一个由许多小图像组成的长条型位图图像。如图一所示:       图一 假设你有7个20x20的图标,则在图像清单中会将它们保存为一个140x20的位图(7x20=140)。你可以根据需要来调整这个位图的颜色特性;但是必须在创建图像清单时指出要使用多少种颜色。在缺省情况下是16色。另外,当MFC加载工具栏位图时使用的一个内部函数,AfxLoadSysColorBitmap,也假设颜色为16色。所以用MFC编程时,为了显示256色图像,你必须要对图像清单进行处理。
我编写了DEMO程序TBColor来说明如何在工具栏中显示256色图像,这个程序是一个极其典型的MFC程序——它有一个漂亮的工具栏。如图二所示: 图二 按下工具栏的每一个按钮都弹出“关于”对话框。具体处理细节全都在CMainFrame::OnCreate函数中实现:

MainFrm.cpp ////////////////////////////////////////////////////////////////// Set tabsize = 3 in your editor.//#include "StdAfx.h"#include "MainFrm.h"#include "Resource.h"BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)    ON_WM_CREATE()END_MESSAGE_MAP()static UINT indicators[] = {    ID_SEPARATOR,           // status line indicator    ID_INDICATOR_CAPS,    ID_INDICATOR_NUM,    ID_INDICATOR_SCRL,};CMainFrame::CMainFrame(){}CMainFrame::~CMainFrame(){}BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){    cs.style |= WS_CLIPCHILDREN;    return CFrameWnd::PreCreateWindow(cs);}int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){    VERIFY(CFrameWnd::OnCreate(lpCreateStruct)==0);        //创建并加载工具栏    //    VERIFY(m_wndToolBar.Create(this));    VERIFY(m_wndToolBar.LoadToolBar(IDR_MAINFRAME));    // 加载工具栏位图 - 必须使用::LoadImage映射颜色    // 将(192,192,192) 映射到 COLOR_3DFACE.    //    HBITMAP hbm = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),        MAKEINTRESOURCE(IDR_MAINFRAME),        IMAGE_BITMAP,        0,0, // cx,cy        LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS );    CBitmap bm;    bm.Attach
                        

来源:http://www.tulaoshi.com/n/20160129/1484261.html

延伸阅读
如何定制浮动工具条 作者/NorthTibet 下载源代码 关于这个问题,其实网上可以找到很多这方面的文章和例子。尤其是在MSDN上,你可以查阅到非常详细的内容。为简单起见,本文这里只将需要定制的代码列出来。 第一步: 创建一个MDI工程,一路都选择默认选项。 ...
工作之余做了这个小东西 仿Office 2003的工具条,主要尝试不用任何图片(当然不可能把所有按扭都做出来),所有的控件都是用Css和Javascript做的 菜单就不做了,偷懒中 感兴趣的朋友可以和我联系,大家交流交流.运行代码框 <html<head<meta http-equiv="Content-Language" content="zh-cn"<meta http-equiv="Content-Type" content=...
  该程序是我从别人的网站上分析出来的!由于对方的网站使用了框架,而且又取消了鼠标的右键功能,因此费了好长时间! 当你浏览该页时,工具条始终浮在左上角,你若不喜欢,可以自己调节摆放位置!若想多页使用该代码,可以把JSP程序部分写成JS的文件,然后再通过调用来实现,有不明白的地方,欢迎各位与我交流! 演示地址:http://www....
如何嵌入(Docking)一个工具条(How To Docking A Toolbar EnableDocking(CBRS_ALIGN_ANY); // Initialize dialog bar m_wndQuickConnect if (!m_wndQuickConnect.Create(this, IDD_QUICKCONNECT,//IDD_QUICKCONNECT is a toolbar
标签: Web开发
很多站长都怀疑Google工具条是否有助于新站的收录,之前风采依扬也问过SEOer,Google工具条是否有利于网站的收录?答案比较模糊,有的人说:Google tool有可能会把信息发送到google服务器上,但必须大量使用。有的人说:之前Matt Cutts跟Philipp打过赌做试验,最后是Matt Cutts胜出。 今天风采可以告诉大家,google工具条是有利于收录新的页面...

经验教程

529

收藏

79
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部