![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MFC控件自绘
文章平均质量分 84
均为本人原创,写于2012左右,现转过来。
自绘MFC各种控件,可以看作是前端界面部分。附带MFC控件的使用方法。
MFC可以看作是对windows API的一种封装
Bczheng1
来看看,web3,区块链爱好者。dapp是个很吸引人的东西。
展开
-
VC MFC进程条(CProgressCtrl)控件
/设置进程条上下限(范围)void CProgressCtrl::GetRange( int& nLower, int& nUpper );//获得进程条上下限。//计算进程条当前宽度。原创 2024-01-13 10:30:08 · 503 阅读 · 0 评论 -
VC MFC滑块(CSliderCtrl)控件
从CSliderCtrl类派生出子类CNewSliderCtrl,由于滑块控件不像前几个控件那样复杂,所以自绘,就直接在WM_PAINT消息处理函数中进行就行了,给CSliderCtrl添加WM_PAINT消息处理函数,这里我仅简单的自绘一下。//设置滑块范围,nMin最小值,nMax最大值。//获取滑块通道区域。//获取滑块通道区域。原创 2024-01-13 10:29:31 · 504 阅读 · 0 评论 -
VC MFC列表框(CListBox)控件
关于列表框背景位图的问题,可以响应对话框的WM_CTLCOLOR消息,在这个消息处理函数中,判断是否为列表框,如果是那就返回一个位图画刷,如在对话框类添加一个CBrush变量 brush;接着准备两张位图,一张用于列表框的背景,一张用于项选中时的背景,ID号分别为:IDB_BK、IDB_SELECTED。m_ListBox.AddItem(IDB_BITMAP3,"聆听(小鸟在唱歌...)");m_ListBox.AddItem(IDB_BITMAP5,"大地(在那些....)");原创 2024-01-13 10:28:56 · 1214 阅读 · 0 评论 -
VC MFC标签(CTabCtrl)控件
首先往对话框添加标签控件,调整至合适大小,关联变量m_TabCtrl,再添加两个控件,用于标签项显示,分别是列表视图控件,关联变量m_ListCtrl,树视图控件,关联变量m_TreeCtrl.rect.DeflateRect(0,itemRect.Height()+4,0,0);m_TreeCtrl.InsertItem("小明",hFriends);原创 2024-01-13 10:28:11 · 565 阅读 · 0 评论 -
VC MFC树视图(CTreeCtrl)控件
首先往对话框添加一个树视图控件,设置样式为有线条,有按钮,根部的线,并为其关联变量m_TreeCtrl,接着往对话框添加一个变量CImageList m_ImageList;关于上面InsertItem函数参数解释,第一个参数是项文本内容,第二个参数是项正常显示时的图标,第三个参数是项被选中时显示的图标,首先得定义一个函数,这个函数遍历所有结点,每获取得一个结点,就用GetCheck函数判断是否被核记,核记了,就获取文本。m_TreeCtrl.InsertItem("小明",1,1,hFriends);原创 2024-01-12 20:19:55 · 1016 阅读 · 0 评论 -
VC MFC列表视图(CListCtrl)控件
过程跟设置菜单栏项高及字体大小一样,处理WM_MEASUREITEM和WM_DRAWITEM消息,不过是处理对话框里这两个消息,前面说过了,子窗口是接不到这两个消息的,所以不要给从CListCtrl派生下来的类添加这两个消息处理函数,处理父窗口的消息就行了,如果要子窗口接收到这两个消息,需要消息反射,这里就直接处理父窗口的消息了,关于用消息反射的方法将在后面介绍。m_ListCtrl.InsertColumn(1,"买入价格:元",LVCFMT_LEFT,100);原创 2024-01-12 20:19:02 · 779 阅读 · 0 评论 -
VC MFC菜单栏(CMenu)控件
一个API函数SetMenuInfo,这个函数可以设置菜单重绘时选择的填充画刷类型,该函数有两个参数,第一个是要设置的菜单句柄,第二个是一个MENUINFO结构指针,我们只要了解这结构里有一个成员hbrBack就行了,hbrBack是一个画刷句柄,而菜单背景位图就通过创建位图画刷来实现的。//调用CNewMenu类的MeasureItem成员函数。nPostion指明具体要设置的菜单项,可以是菜单项索引,菜单项ID,具体由nFlags参数指明,为MF_BYPOSITION,则以菜单项索引指明,原创 2024-01-11 19:20:32 · 1093 阅读 · 0 评论 -
VC MFC组合框(CComboBox)控件
int CNewComboBox::SetItemIcon(UINT nID,LPCTSTR lpszString)//第一个参数是图标ID号,第二个是文本内容。SetItemHeight//设置列表框项,或编辑框高度,第一个参数为-1表示设置编辑框高度,0表示列表框项,第二个参数是要设置的高度。SetItemData//为列表框里的项关联一个DWORD值,第一个参数表示列表框项索引,第二个参数指明具体值。GetItemData//只有一个参数,列表框项索引,返回该索引关联的值。原创 2024-01-11 19:19:11 · 827 阅读 · 0 评论 -
VC MFC工具栏(CToolBar)控件
一个不具有这个状态的按钮是不接收用户输入的,并且变灰。上面的TBBUTON结构里有一个成员idCommand,这个成员跟菜单项的ID值一样,用于标识工具栏按钮项,也就是说idCommand是工具栏项ID号,就是最前面设置工具栏资源时,选择一个按钮,然后按回车,弹出一个对话框,里面有一个ID项,跟这个是一样的。这个函数的第二个参数dwStyle是按钮控件的样式,也就是在可视化添加按钮控件时,右击按钮控件,选择属性,之后会弹出一个对话框,这个对话框有一个样式的选项,该参数即对应这个样式。//激活信息提示功能。原创 2024-01-10 19:47:08 · 1292 阅读 · 0 评论 -
VC MFC按钮(CButton)控件
自绘按钮控件的原理很简单,获取控件窗口的设备上下文(DC),然后调用相应的API画图函数进行控件自绘,所有能针对DC操作的API函数都能应用到控件里来,如Rectangle(画一个矩形),BitBlt(显示图片)函数等。首先确定你要显示在按钮控件的图片类型是什么,这里我是ico图标,由于要在按钮里显示ico图标,所以要把按钮控件的属性改一下,里面就是各种类的集合,一个类库大全。由于我们在上面只处理了按钮的两个状态,按下,和正常状态,所以当按钮获得焦点,或处于其它状态时,则没有对应的动作。原创 2024-01-10 19:44:54 · 1220 阅读 · 0 评论