MFC-常用控件使用

1 . 按钮

  1. 按钮变灰 CButton::EnableWindow(FALSE);

  2. 按钮设置名字 CButton::SetWindowText(_T(“xxxx”));

  3. 加载bitmap (打开按钮属性的bitmap)
    CButton::SetBitmap(bitmap); //bitmap: 位图类 对象
    //改变按钮大小来适应位图大小
    CButton::MoveWindow(200,200,bmp.bmWidth,bmp.bmHeight);



2 . bitmap操作

  1. CBitmap bitmap; //定义 位图类 对象
    bitmap.LoadBitmapW(IDB_BITMAP1); //加载位图

  2. BITMAP bmp; //bmp里面存是位图信息,主要宽 高
    bitmap.GetBitmap(&bmp); //得到位图信息

  3. 通过路径获取bitmap句柄
    #define HBMP(filepath,width,height) (HBITMAP)LoadImage(AfxGetInstanceHandle(),filepath,IMAGE_BITMAP,width,height,LR_LOADFROMFILE|LR_CREATEDIBSECTION)
    例如:
    m_Button.SetBitmap(HBMP(TEXT("./res/demo.bmp"), 100, 100));
    m_Button.MoveWindow(200,200,100,100);


3 . 静态文本框(static text) :主要做显示 文字或者图片

  1. 常用属性设置
    Number -> True 只能输入数字
    Password -> True 密码模式
    Want return -> True 接收回车键,自动换行,只有在多行模式下,才能换行
    Multiline -> True 多行模式
    Auto VScroll -> True Vertical Scroll -> True 当垂直字符太多,自动出现滚动条
    Read Only -> True 只读
  2. 静态文本框设置bitmap:
    CStatic:: ModifyStyle(0xf,SS_BITMAP|SS_CENTERIMAGE);//风格为位图居中显示
    CStatic::SetBitmap(); //可结合路径加载
  3. 关联变量和控件数据的交互更新
    把编辑区的内容更新到str中 UpdateData(TRUE);
    把str的内容更新到编辑区中 UpdateData(FALSE);
  4. 编辑区内容操作
    获取编辑区内容 CStatic::GetWindowText(str);
    设置编辑区内容 CStatic::SetWindowText(str);


4. 单选框(RadioButton)

  1. 初始化单选框 CWnd::CheckRadioButton(IDC_RADIO1,IDC_RADIO3,IDC_RADIO2)
    初始状态 IDC_RADIO1 和IDC_RADIO3之间,IDC_RADIO2被选中
  2. 判断单选框是否被按下 CWnd::IsDlgButtonChecked(IDC_RADIO1)
    按下返回TRUE


5. 复选框(CheakBox)

  1. 单选框和复选框都是继承CButton, 上面单选框的两个函数也可以用
  2. 设置被选中 CButton::SetCheck(1); //1选中 0不选中
  3. 获取按钮选择状态 CButton::GetCheck();


6. 列表框(ListBox) 编号从0开始

  1. 给列表框添加一个字符串 CListBox::AddString(m_str)

  2. 获取当前选中项编号 int i=CListBox::GetCurSel();

  3. 删除指定位置编号的字符串 CListBox::DeleteString(i);

  4. 选中列表列表框某一项,自动触发事件:LBN_SELCHANGE

  5. 获取指定位置的内容 CListBox::GetText(i , m_str);

  6. 在指定位置插入字符串 CListBox::InsertString(i , m_str);


7. 下拉框(ComBox) 编号从0开始

  1. 属性设置
    data: 设置初始内容,不同内容间同英文的分号“;”分隔
    type: Droplist不可编辑的 Dropdown是可编辑的
    sort: 按照名称排序,默认排序,使用时尽量选false

  2. 设置默认的选项 CComboBox::SetCurSel(1);

  3. 获取内容: CComboBox::GetLBText(i , m_str);

  4. 其他接口和上一个控件通用


8.滑块(Horizontal Scroll Bar)

  1. 处理滑块的事件需要在父窗口添加事件响应函数 WM_HSCROLL

  2. 设置给定滑块的最小和最大位置:CScrollBar::SetScrollRange(0,100);

  3. 设置一个滑块的当前位置:CScrollBar::SetScrollPos(50);

  4. 获取一个滑块的当前位置: CScrollBar::GetScrollPos();

  5. 父: 消息响应函数 OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
    pScrollBar: 如果有多个滑块,那个触发消息的滑块的地址,可结合if语句判断。
    nPos : 滑块的当前位置(只有鼠标移动滑块才有值,鼠标点击其他四个位置返回的都是0)。
    nSBCode : 滚动条位置关系。


		switch (nSBCode) //判断滚动条的哪一部分
		{
		case SB_THUMBPOSITION: //滑块位置
			break;
		case SB_LINELEFT: //向左的箭头
			break;
		case SB_LINERIGHT: //向左的箭头
			break;
		case SB_PAGELEFT: //箭头和滑块之间左边
			break;
		case SB_PAGERIGHT: //箭头和滑块之间右边
			break;
		default:
			break;
		} 



9.旋转按钮 (SpinControl)

  1. 属性设置 Auto Buddy -> True Set buddy integer -> True

  2. 微调(旋转)按钮的顺序比伙伴大1 (Ctrl + D 查看),伙伴不能为0

  3. 设置范围 CSpinButtonCtrl::SetRange32(0,100); //32->int 没有32->short

  4. 设置进制数 CSpinButtonCtrl::SetBase(10); // 10 或者 16进制



10.列表控件(ListControl)

  1. 属性设置报表模式 view -> Report (报表方式)
    代码设置报表模式:CWnd::ModifyStyle(0, LVS_REPORT);

  2. 设置列表风格 CListCtrl::SetExtendedStyle();
    LVS_EX_FULLROWSELECT:选择整行
    LVS_EX_GRIDLINES:网格方式

  3. 插入列CListCtrl::InsertColumn(列编号,str,对齐方式(LVCFMT_LEFT/ LVCFMT_RIGHT/ LVCFMT_CENTER),每个单元格宽度);

  4. 插入行后,才能设置子项内容,(确定有几行,0(i)行是实际的第二行,0(j)列是第一列) CListCtrl::InsertItem(i ,str);

  5. 设置子项内容(设置第几列) CListCtrl::SetItemText(i , j , str);

  6. 获取内容 CListCtrl::GetItemText(i , j); 点击事件NM_CLIK可获取点击行列信息
    NM_LISTVIEW* pList = (NM_LISTVIEW*)pNMHDR;
    int i = pList->iItem;
    int j = 1;


11.树控件(TreeControl)

  1. 常用属性设置
    has buttons -> true
    has lines -> true
    lines at root -> true

  2. 加载自定义图标
    获取应用程序对象指针 AfxGetApp()
    加载自定义图标 HICON icon= CWinApp::LoadIcon(ID);

  3. 创建图像列表
    .h 文件类中定义图形列表 CImageList 对象
    创建图像列表 CImageList::Create(30,30,ILC_COLOR32,4,4)
     30 30: 图片长宽
      ILC_COLOR32:图片样式
     4 4 :有几张图片 写几张
    图像列表追加图标 CImageList::Add(icon)

  4. 树控件设置图像列表 CTreeCtrl::SetImageList(&m_ImageList,TVSIL_NORMAL);

  5. 插入节点 CTreeCtrl::InsertItem();
    HTREEITEM root=m_TreeCrl.InsertItem(_T(“根节点”),0,0,NULL);
    //根节点 第0张图片
    HTREEITEM father=m_TreeCrl.InsertItem(_T(“父节点”),1,1,root);
    //父节点 第1张图片
    HTREEITEM son=m_TreeCrl.InsertItem(_T(“子节点”),2,2,father);
    //子节点 第2张图片

  6. 设置默认选中项 CTreeCtrl::SelectItem(fathter);


12.标签控件(TabControl)

  1. 设置子对话框相应属性:Style -> Child (子窗口) Border -> None (无边框)

你可能感兴趣的:(MFC)