精华内容
下载资源
问答
  • MFC-单选多选按钮

    2017-09-07 15:25:32
    /* 这里最简单的方式就是用事件的方式来获取每个选择的动态 加入自己的逻辑就可 */ void CMFC小控件全Dlg::OnBnClickedRadio1() { MessageBox(L"第一个",_T("您选择的是...void CMFC小控件全Dlg::OnBnClickedRadi
    /*
    	这里最简单的方式就是用事件的方式来获取每个选择的动态
    	加入自己的逻辑就可
    
    */
    
    
    void CMFC小控件全Dlg::OnBnClickedRadio1()
    {
    	MessageBox(L"第一个",_T("您选择的是"),MB_OK);		//显示一个提示框
    	// TODO: 在此添加控件通知处理程序代码
    }
    
    
    void CMFC小控件全Dlg::OnBnClickedRadio2()
    {
    	MessageBox(L"第二个",_T("您选择的是"),MB_OK);		//显示一个提示框
    	// TODO: 在此添加控件通知处理程序代码
    }
    
    
    void CMFC小控件全Dlg::OnBnClickedRadio3()
    {
    	MessageBox(L"第三个",_T("您选择的是"),MB_OK);		//显示一个提示框
    	// TODO: 在此添加控件通知处理程序代码
    }
    
    
    void CMFC小控件全Dlg::OnBnClickedCheck1()
    {
    	MessageBox(L"第一个",_T("您选择的是"),MB_OK);		//显示一个提示框
    	// TODO: 在此添加控件通知处理程序代码
    }
    
    
    void CMFC小控件全Dlg::OnBnClickedCheck2()
    {
    	MessageBox(L"第二个",_T("您选择的是"),MB_OK);		//显示一个提示框
    	// TODO: 在此添加控件通知处理程序代码
    }
    
    
    void CMFC小控件全Dlg::OnBnClickedCheck3()
    {
    	MessageBox(L"第三个",_T("您选择的是"),MB_OK);		//显示一个提示框
    	// TODO: 在此添加控件通知处理程序代码
    }

    展开全文
  • 多选效果在应用软件经常遇到,例如WORD软件,文本是否具有粗体、斜线和下划线的效果,通过工具栏按钮多选效果可以一目了然,给用户带来便捷。按钮效果如下图所示。 温馨提示 工具栏按钮与消息处理函数...

    00. 目录

    01. 案例概述

    多选效果就是指工具栏按钮有按下的效果,这种按钮再次按动时才能弹起,不具备自动弹起的功能。多选效果在应用软件中经常遇到,例如WORD软件中,文本是否具有粗体、斜线和下划线的效果,通过工具栏按钮的多选效果可以一目了然,给用户带来便捷。按钮效果如下图所示。

    在这里插入图片描述

    温馨提示

    工具栏中的按钮与消息处理函数映射好之后才可以使用,否则是灰色的按钮。

    02. 开发环境

    系统环境:Windows 10

    开发环境:Visual Studio 2019

    03. 关键技术

    同实现工具栏按钮单选效果的方法相同,多选效果任然通过类CToolBar的SetButtonInfo方法实现,只要将nStyle参数的取值设置为TBBS_CHECKBOX,工具栏上的按钮就具有多选效果了。

    04. 程序设计

    (1)新建一个基于单文档视图结构的应用程序。

    (2)在CMainFrame类中声明一个CToolBar对象和CImageList对象。

    protected:  // 控件条嵌入成员
    	//CToolBar          m_wndToolBar;
    	CStatusBar        m_wndStatusBar;
    
    	CToolBar m_ToolBar;
    	CImageList m_ImageList;
    
    	int m_PosY = 0;
    

    (3)在CMainFrame类的OnCreate函数中创建工具栏,函数实现代码如下。

    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
    		return -1;
    
    
    	if (!m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | CBRS_FLOATING 
                                | WS_VISIBLE | CBRS_ALIGN_TOP | TBSTYLE_FLAT
    	))
    	{
    		TRACE0("未能创建工具栏\n");
    		return -1;      // 未能创建
    	}
    
    
    	//创建图像列表
    	m_ImageList.Create(32, 32, ILC_COLOR32 | ILC_MASK, 0, 0);
    
    	CString strPath;
    	HICON hIcon;
    
    	for (int i = 1; i < 10; i++)
    	{
    		strPath.Format(TEXT(".\\res\\toolbar\\%02d.ico"), i);
    		hIcon = (HICON)LoadImage(NULL, strPath, IMAGE_ICON, 32, 32, LR_LOADFROMFILE);
    		m_ImageList.Add(hIcon);
    	}
    
    	//设置工具栏按钮
    	m_ToolBar.SetButtons(NULL, 9);
    
    	//设置工具栏按钮样式集资源ID
    	m_ToolBar.SetButtonInfo(0, ID_ADDDATA, TBBS_CHECKBOX, 0);
    	m_ToolBar.SetButtonText(0, TEXT("优化"));
    
    	m_ToolBar.SetButtonInfo(1, ID_UPDATEDATA, TBBS_CHECKBOX, 1);
    	m_ToolBar.SetButtonText(1, TEXT("调试"));
    
    
    	m_ToolBar.SetButtonInfo(2, ID_DELETEDATA, TBBS_CHECKBOX, 2);
    	m_ToolBar.SetButtonText(2, TEXT("平台"));
    
    
    	m_ToolBar.SetButtonInfo(3, ID_FIRSTDATA, TBBS_CHECKBOX, 3);
    	m_ToolBar.SetButtonText(3, TEXT("编码"));
    
    
    	m_ToolBar.SetButtonInfo(4, ID_PREVIOUSDATA, TBBS_CHECKBOX, 4);
    	m_ToolBar.SetButtonText(4, TEXT("语言"));
    
    
    	m_ToolBar.SetButtonInfo(5, ID_NEXTDATA, TBBS_CHECKBOX, 5);
    	m_ToolBar.SetButtonText(5, TEXT("移植"));
    
    
    	m_ToolBar.SetButtonInfo(6, ID_LASTDATA, TBBS_CHECKBOX, 6);
    	m_ToolBar.SetButtonText(6, TEXT("双核"));
    
    
    	m_ToolBar.SetButtonInfo(7, ID_SAVEDATA, TBBS_CHECKBOX, 7);
    	m_ToolBar.SetButtonText(7, TEXT("64位"));
    
    	m_ToolBar.SetButtonInfo(8, ID_CANCELDATA, TBBS_CHECKBOX, 8);
    	m_ToolBar.SetButtonText(8, TEXT("内存"));
    
    	if (!m_wndStatusBar.Create(this))
    	{
    		TRACE0("未能创建状态栏\n");
    		return -1;      // 未能创建
    	}
    	m_wndStatusBar.SetIndicators(indicators, sizeof(indicators)/sizeof(UINT));
    
    	//设置工具栏按钮大小
    	m_ToolBar.GetToolBarCtrl().SetButtonSize(CSize(60, 55));
    	m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);
    
    
    	m_PosY = 80;
    
    	return 0;
    }
    

    (4)设置工具栏按钮和处理函数映射

    BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
    	ON_WM_CREATE()
    	ON_COMMAND_RANGE(ID_ADDDATA, ID_ADDDATA + 9, OnMenuClick)
    END_MESSAGE_MAP()
        
    
    void CMainFrame::OnMenuClick(UINT nItemID)
    {
    	CString str, strResult;
    
    	CDC* pDC = GetDC();
    
    	m_ToolBar.GetButtonText(nItemID - ID_ADDDATA, str);
    	strResult = TEXT("您选择了: " + str);
    	pDC->TextOutW(10, m_PosY, strResult);
    
    	m_PosY += 20;
    
    }
    
    

    05. 秘笈心法

    复选按钮状态的记录

    对于选中的复选按钮应使用布尔变量进行记录,每一个按钮对应一个布尔变量,最后通过对布尔变量的判断可以得到哪些按钮已经被按下,如果两个复选按钮不能同时按下,此时就可以进行判断。

    06. 源码下载

    下载:【MFC】工具栏按钮多选效果本.rar

    07. 附录

    展开全文
  • MFC】工具栏按钮多选效果本.rar
  • 当项目需要自定义表格多选编辑状态下的选中图片时候,系统并没有给我们什么方法去直接自定义。此时我们需要在选中cell的方法里去做一些操作

    当项目中需要自定义表格多选编辑状态下的选中图片时候,系统并没有给我们什么方法去直接自定义。此时我们需要在选中cell的方法里去做一些操作

    如下,当表格编辑状态时,我们在选中的方法里面去做遍历,获取到左侧那个imageView

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
        //[tableView deselectRowAtIndexPath:indexPath animated:YES];
        
        UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
        for (UIView *v1 in cell.subviews) {
            NSLog(@"cell.subview---%@", v1);
            if ([v1 isKindOfClass:[UIControl class]]) {
                for (UIView *v2 in v1.subviews) {
                    NSLog(@"UITableViewCellEditControl.subview---%@", v2);
                    if ([v2 isKindOfClass:[UIImageView class]]) {
                        UIImageView *imageView = (UIImageView *)v2;
                        imageView.image = [UIImage imageNamed:@"hood"];
                    }
                }
            }
        }
    }
    我们可以看到cell.subviews输出日志如下

    再次遍历红框内的subviews,输出日志如下


    此时我们去改变该imageView的image即可

    效果图如下,图片尺寸不太对,有点模糊



    展开全文
  • MFC radio button多选

    2019-10-23 11:03:08
    也就是radio button的分组: 每一组radio button的序号必须要连续(在界面按 Ctrl+D即可调整序号),且每一组的第一个radio button的Group属性要置为true。 这样每一组按钮都可以选一个。 ...

    也就是radio button的分组:

    每一组radio button的序号必须要连续(在界面按 Ctrl+D即可调整序号),且每一组的第一个radio button的Group属性要置为true。

    这样每一组按钮都可以选一个。

    展开全文
  • 本文以包含两个列表框的对话框为例,实现了对话框常用的功能。左边的“待选的历史人物”列表框包含历史人物的名字,当选人名并单击“添加”按钮,则名字会被添加...且列表框的选项可以实现多选和多个选项同时操作。
  • MFC单选,多选示例

    2019-12-03 16:18:38
    一,单选 void Ctest2Dlg::OnBnClickedOk() { UpdateData(); CString str; str.Format(_T("%d"), m_fruit); MessageBox(str);...二,多选 void Ctest2Dlg::OnBnClickedOk() { UpdateData(); ...
  • 现需要一个二选一的按钮,例如从板卡1、2选择一块儿。 环境:qt 5.9.0 、win10 qRadioButton 在ui设计界面将几个qRadioButton拖到ui界面上,运行效果如下。 可见4个qRadioButton只能够被选中一个,而我需要上边两...
  • MFC单选按钮

    千次阅读 2014-06-08 16:41:36
    在定义控件变量时,ClassWizard在构造函数会把变量初值设为-1,只需把它改为其它值即可。 如: //{{AFX_DATA_INIT(CUnitBlockTypeFlankPubli cAdd) m_Radio1 = 0;       //初始时第一个单选按钮被选中 ...
  • if(dlg.DoModal() == IDOK) //判断是否按下"打开"按钮 { POSITION m_Position = dlg.GetStartPosition(); while(m_Position != NULL) { strPath = dlg.GetNextPathName(m_Position); m_List....
  • //IDC_BUTTON0 这个可以先声明在Resource.h,方便后续使用 } //这里是响应函数 void CTestImage2Dlg::OnClick(UINT uID) { // TODO: Add your control notification handler code here CString str; str....
  • 近期需要实现一个功能:MFC对话框,一项菜单下有五个菜单项,改变菜单项选中状态,每次只能选择其中一个打勾。(单选) 然后在网上搜了下资料,稍微总结下,以防后面用到。   1.单选实现: CMenu* menu = ...
  • MFC 带下拉选择列表的按钮控件

    热门讨论 2011-05-06 09:26:08
    MFC 带下拉选择列表的按钮控件,包含头文件和CPP文件就可以使用。派生自CButton类。所给的文件是一个MFC工程,不妨先运行试试看看效果!
  • MFC下单选按钮,多选按钮的简单实用
  • Ultimate Grid 支持很多种单元格类型,比如下拉列表、多选按钮、微调按钮、单选按钮等等。如果没有您所需要的标准单元格类型,自定义单元格类型也很容易。下拉列表、多选按钮等类型的单元格是内嵌的,而要添加非...
  • MFC-复选框单选按钮用法

    千次阅读 2016-03-25 14:09:40
    利用CButton类获取指向复选框按钮的指针,然后来操作它//获取指向复选框按钮的指针 CButton* pBtn = (CButton*)GetDlgItem(IDC_CHECK); //被选中返回1 if (pBtn->GetCheck()) { AfxMessageBox(_T("复选框被选中了...
  • Introduction:This class is derived from the MFC CButton. It supports the following features: 1. Showing of On/Off LEDs to indicate state of the check box 2. Showing an icon to indicate state of the ...
  • MFC中常用控件语句

    2014-12-15 21:03:17
    MFC中常用的语句:如获取主窗体指针,单选、多选按钮控件的设置等
  • MFC】CListCtrl,多选后删除,整个程序关闭,也不提示异常,找不到问题,求助! void C天星定时器Dlg::OnBnClickedDel() { POSITION pos = pList.GetFirstSelectedItemPosition(); //pos选中的首行位置 ...
  • 近期需要实现一个功能:MFC对话框,一项菜单下有五个菜单项,改变菜单项选中状态,每次只能选择其中一个打勾。(单选) 然后在网上搜了下资料,稍微总结下,以防后面用到。 1.单选实现: CMenu* menu = ...
  • MFC中listControl控件右键双击响应事件

    千次阅读 2016-08-13 10:03:52
    ListControl控件添加多选按钮风格,通过左键单击、双击、右键单击、双击都是可以选中打钩的。 m_list2.SetCheck(nItem,true);//nItem为行号 这个函数设置为不选中。 void CSave::OnClickList2(NMHDR* pNMHDR, ...
  • 基于VC的MFC上位机界面的设计,包含各式各样的控件,单选按钮 多选按钮 列表框等
  • 鼠标左键按下后拖动实现多选

    热门讨论 2014-06-25 14:10:57
    MFC对话框程序,界面很多自绘按钮,鼠标左键按下后拖动可以实现多选
  • MFC中m_ofn参数详解

    2020-07-28 23:47:47
    标记 含意 OFN_ALLOWMULTISELECT 指定文件名列表框允许多选。如果同时你设置了OFN_EXPLORER标记,对话框使用Explorer风格用户界面;否则它使用旧风格用户界面。 如果用户选择了一个以上的文件,lpstrFile缓冲...
  • 部分MFC中的类中文解释

    千次阅读 2013-04-15 21:16:43
    索引 ...CBrush类:封装图形设备接口(GDI)的画刷 CButton类:提供Windows按钮控件的功能 CByteArray类:该类支持动态的字节数组 CCmdUI类:该类仅用于ON_UPDATE_COMMAND_UI处理函
  • 编辑控件+按钮的应用 1.创建一个对话框,在对话框上能够输入并显示字符串,比如“Nothing Is Impossible”。 2.在对话框添加一个按钮,点击按钮,显示按词倒序以后的字符串,比如“Impossible Is Nothing”。 点击...
  • 这篇文章能让初学者快速了解visual C++ MFC中常见的核心的类与函数,虽然全部看下来有点枯燥,但对初学者快速了解MFC的框架结构很有好处。 常用类 CArchive类:用于二进制保存档案  ...
  • MFC 控件自绘

    2017-10-28 11:06:33
    不同的窗口、控件,需要在不同的地方绘制. 1.按钮(Button)、菜单、标签、列表框(ListBox)、TabCtrl等,在WM...3.单选按钮(RADIOBUTTON)多选按钮(CHECKBOX)在WM_NOTIFY(NM_CUSTOMDRAW)绘制 4.顶级窗口、以及其他一些控件
  • 算法:无论是单选按钮还是多选框的内容输出,都是一个简单的变量传输,注意单选按钮变量是用int类型,传输的是数据;而多选框为BOOL类型,不是真就是假。 步骤图解: 用的是VS2010版本 基于对话框类型 1.添加...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 805
精华内容 322
热门标签
关键字:

mfc中的多选按钮