窗口状态栏的设置
来源:互联网 发布:快期期货交易软件 编辑:程序博客网 时间:2024/05/16 12:32
窗口状态栏其实能做很多事情,记录下我使用的过程吧:
首先在view->ResourceSymbols里面添加自己需要的ID,我用的是ID_RGB;
然后跑到Resources View界面下点击String Table,在最后一个空白处双击,选择ID_RGB在Caption中填入R=0,G=0,B=0(这里其实就是给状态栏一个初始化);
然后跑到程序名为:MainFrame.cpp文件里找到static UINT indicators[]程序如下:
static UINT indicators[] =
{
ID_SEPARATOR,
ID_RGB,//这是我填入的内容。注意这里是逗号不是分号呀!!
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
然后我们就可以去在view中加代码了:(这里实现的功能是随着鼠标的移动,状态栏第一个栏中显示图片的RGB值)
void CBitmapView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
COLORREF p;
CClientDC dc(this);
p=dc.GetPixel(point);
BYTE R = GetRValue(p); ///得到红颜色
BYTE G = GetGValue(p); ///得到绿颜色
BYTE B = GetBValue(p); ///得到兰颜色
// double H=(0.229*R+0.587*G+0.114*B);
CString str;
str.Format("R=%d,G=%d,B=%d",R,G,B);
//这里就是状态栏显示的部分,具体什么含义还是自己多看看去吧。
CMainFrame*pMainFrame=(CMainFrame*)(AfxGetApp()->GetMainWnd());
pMainFrame->m_wndStatusBar.SetPaneText(1,str);
// CSize sz=dc.GetTextExtent(str);调整状态栏的大小(这里很有意义的^_^)
CMainFrame*pMainFrame1=(CMainFrame*)(AfxGetApp()->GetMainWnd());
int index=0;
index=pMainFrame1->m_wndStatusBar.CommandToIndex(ID_RGB);
pMainFrame1->m_wndStatusBar.SetPaneInfo(index,ID_RGB,SBPS_NORMAL,100/*sz.cx*/);
CView::OnMouseMove(nFlags, point);
}
这样基本就完成代码的添加了,但是此时是编译不成功滴,嘎嘎,因为我们是在view中调用CMainFrane类,所以,一定要在头文件里面增加一下预处理命令呀:
#include "MainFrm.h"
然后编译会提示还有错误,原来是m_wndStatusBar是个保护类型,只有其本身和派生类才能直接用,所以这里我们找到其定义的地方看看:
class CMainFrame : public CFrameWnd
{
//省略前面代码
protected: // control bar embedded members 把这里的protected改成public吧
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
// 省略后面的代码
};
哈哈,这下再去编译就没有问题喽,搞定了。
- 窗口状态栏的设置
- android设置状态栏窗口——删除状态栏
- vim的状态栏设置
- ios状态栏的设置
- 状态栏的设置
- 状态栏(UIStatusBar)的设置
- 设置状态栏的方法
- 设置透明的状态栏
- IOS状态栏的设置
- 设置状态栏的字体颜色
- android设置状态栏的颜色
- iOS 状态栏的颜色设置
- iOS 状态栏的一些设置
- android 设置状态栏的颜色
- 沉浸式状态栏的设置
- Android状态栏的沉浸设置
- android沉浸状态栏和顶部状态栏背景色的设置
- 把状态栏设置成透明的,沉浸式状态栏
- 转帖 C#编程之委托与事件(一)
- messagebox()的应用
- 转帖 C#编程之委托与事件(二)
- 转载 AVL(平衡树)C++代码(非递归)
- SQL优化34条(转载至http://topic.csdn.net/u/20080808/14/dfc973e7-fcf2-4526-9de1-fa5efc148f5c.html?seed=1579461806)
- 窗口状态栏的设置
- delete 错用 delete[] 导致 Trigger Point Break
- loginany
- XSL简介
- 初学asp.net
- 程序员需要聚会
- VC++6.0 工程无法添加文件的问题
- 解决HIbernate分页问题获取表总行数的小Bug
- html_dom节点节点信息