当前位置: 首页 > news >正文

12 MFC常用控件(一)

文章目录

  • button 按钮
    • 设置默认按钮按下回车后会响应
    • 禁用
    • 开启禁用
    • 设置隐藏
    • 设置显示
    • 设置图片
    • 设置Icon
    • 设置光标
  • Cbutton 类
    • 创建按钮
    • 创建消息
    • 单选按钮
    • 多选按钮
  • 编辑框
  • 组合框
    • 下拉框操作
  • CListBox
    • 插入数据
    • 获取当前选中
  • CListCtrl
    • 插入数据
    • 设置表头
    • 修改
    • 删除

button 按钮

设置默认按钮按下回车后会响应

在这里插入图片描述

void CDemoDlg::OnBnClickedBtnTest()
{MessageBox(L"按下回车");
}

禁用

在这里插入图片描述

开启禁用

GetDlgItem(IDC_BTN_TEST)->EnableWindow(TRUE);

设置隐藏

在这里插入图片描述

设置显示

GetDlgItem(IDC_BTN_TEST)->ShowWindow(SW_SHOW);

设置图片

开启位图

在这里插入图片描述

放置BMP图片

在这里插入图片描述

选择Bitmap

在这里插入图片描述
在这里插入图片描述

在文件里选择所有文件导入图片

在这里插入图片描述

设置属性修改ID

在这里插入图片描述

  //加载图片CBitmap bmp;bmp.LoadBitmap(IDB_TEST);//获取图片大小BITMAP logBmp;bmp.GetBitmap(&logBmp);//获取按钮CButton* pTestBtn = (CButton*)GetDlgItem(IDC_BTN_TEST);pTestBtn->MoveWindow(0, 0, logBmp.bmWidth, logBmp.bmHeight);//将图片与按钮大小一致pTestBtn->SetBitmap(bmp);

在这里插入图片描述

设置Icon

在这里插入图片描述

    CButton* pTestBtn = (CButton*)GetDlgItem(IDC_BTN_TEST);pTestBtn->SetIcon(m_hIcon);

在这里插入图片描述

设置光标

在这里插入图片描述

//设置光标
BOOL CDemoDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{if (pWnd->GetDlgCtrlID() == IDC_BTN_TEST)//获取窗口{HCURSOR hCursor = LoadCursor(NULL, IDC_CROSS);SetCursor(hCursor);return TRUE;}return CDialogEx::OnSetCursor(pWnd, nHitTest, message);
}

请添加图片描述

Cbutton 类

在这里插入图片描述

创建按钮

#define IDC_BTN_TEST2 1025CButton m_button;m_button.Create(L"自创button", WS_CHILD | WS_VISIBLE, CRect(100, 100, 200, 200), this, IDC_BTN_TEST2);

在这里插入图片描述

创建消息

在这里插入图片描述

消息映射

void CDemoDlg::OnBnClickedBtnTest2()
{MessageBox(L"Test2");
}

在这里插入图片描述

单选按钮

单选按钮选组长(必须)

在这里插入图片描述

CButton m_radio;
m_radio.Create(L"男", WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON, CRect(20, 20, 70, 50), this, 1234);m_radio.SetCheck(0);

在这里插入图片描述

多选按钮

    CButton m_radio;m_radio.Create(L"男", WS_CHILD | WS_VISIBLE | BS_RADIOBUTTON|BS_CHECKBOX, CRect(20, 20, 70, 50), this, 1234);m_radio.SetCheck(0);

编辑框

int CDemoEditDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{if (CDialogEx::OnCreate(lpCreateStruct) == -1)return -1;//获取客户区大小CRect rect;GetClientRect(&rect);m_edit.Create(WS_CHILD | WS_VISIBLE |WS_VSCROLL| WS_BORDER | ES_WANTRETURN  | ES_MULTILINE | ES_LEFT | ES_AUTOVSCROLL, rect, this, IDC_TEST_EDIT);//m_edit.ModifyStyle(WS_);//移除风格return 0;
}
//滚动响应
void CDemoEditDlg::OnVscrollEdit1()
{//m_edit.ModifyStyle(0,WS_VSCROLL);//DWORD dwStyle = GetWindowLong(m_edit.m_hWnd, GWL_STYLE);//获取原来的风格//dwStyle = dwStyle | WS_VSCROLL;//SetWindowLong(m_edit.m_hWnd, GWL_STYLE, dwStyle);}

组合框

写入数据,每个数据之间用封号隔开

在这里插入图片描述

在这里插入图片描述

    //插入数据CComboBox* m_pcombBox = (CComboBox*)GetDlgItem(IDC_COMBO2);//获取combBoxm_pcombBox->AddString(L"中国");m_pcombBox->AddString(L"美国");m_pcombBox->AddString(L"日本");m_pcombBox->InsertString(1, L"印度");//设置插入位置m_pcombBox->SetCurSel(2);//设置当前所选

取消排序

在这里插入图片描述

组合框类型

在这里插入图片描述

下拉框操作

请添加图片描述

void CDemoEditDlg::OnBnClickedButton1()
{CComboBox* m_pcombBox = (CComboBox*)GetDlgItem(IDC_COMBO2);//获取combBox//m_pcombBox->DeleteString(0);//删除CString str;//m_pcombBox->GetLBText(2, str);//获取文本//MessageBox(str);m_pcombBox->GetWindowText(str);//获取顶层文本MessageBox(str);
}

CListBox

插入数据

	CListBox* listbox = (CListBox*)GetDlgItem(IDC_LIST1);listbox->InsertString(0, L"中国");listbox->InsertString(0, L"美国");listbox->InsertString(0, L"俄罗斯");

获取当前选中

请添加图片描述

void CDemoEditDlg::OnBnClickedButton2()
{CString str;CListBox* listbox = (CListBox*)GetDlgItem(IDC_LIST1);//listbox->GetSel(0);//返回选中的状态int nSel = listbox->GetCurSel();listbox->GetText(nSel,str);MessageBox(str);
}

CListCtrl

插入数据

	CListCtrl* listctrl= (CListCtrl*)GetDlgItem(IDC_LIST2);listctrl->InsertItem(0, L"中国");listctrl->InsertItem(0, L"美国");listctrl->InsertItem(0, L"俄罗斯");

在这里插入图片描述

改变样式风格

在这里插入图片描述

设置表头

在这里插入图片描述

总是选中

在这里插入图片描述

	CListCtrl* listctrl= (CListCtrl*)GetDlgItem(IDC_LIST2);listctrl->SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);//设置拓展风格,整行选,获得网格线listctrl->InsertColumn(0, L"国家", LVCFMT_LEFT,100);listctrl->InsertColumn(1, L"民族", LVCFMT_CENTER, 100);listctrl->InsertColumn(2, L"省份", LVCFMT_RIGHT, 100);listctrl->InsertItem(0, L"中国");listctrl->SetItemText(0, 1, L"汉");listctrl->SetItemText(0, 2, L"浙江");listctrl->InsertItem(0, L"美国");listctrl->InsertItem(0, L"俄罗斯");

在这里插入图片描述

修改

void CDemoEditDlg::OnBnClickedButton3()
{CListCtrl* listctrl = (CListCtrl*)GetDlgItem(IDC_LIST2);//获取数据信息int nCount = listctrl->GetItemCount();//获取选中的行数int nSel=listctrl->GetSelectionMark();if (nSel == -1){MessageBox(L"没选中");return;}//获取选中的内容//CString str1=listctrl->GetItemText(nSel, 0);//MessageBox(str1);listctrl->SetItemText(nSel, 2, L"江西");//修改![请添加图片描述](https://img-blog.csdnimg.cn/36875e64c0074bf4b2b41295ce868c26.gif)}

删除

void CDemoEditDlg::OnBnClickedButton4()
{CListCtrl* listctrl = (CListCtrl*)GetDlgItem(IDC_LIST2);//删除POSITION pos = listctrl->GetFirstSelectedItemPosition();int nSel = listctrl->GetNextSelectedItem(pos);listctrl->DeleteItem(nSel);//删除
}

请添加图片描述

http://www.lryc.cn/news/94124.html

相关文章:

  • Springboot搭配Redis实现接口限流
  • php中的双引号与单引号的基本使用
  • 【Neo4j教程之CQL命令基本使用】
  • Apikit 自学日记:发起文档测试-TCP/UDP
  • 坚鹏:中国邮储银行金融科技前沿技术发展与应用场景第1期培训
  • HBase分布式安装配置
  • Microsoft365有用吗?2023最新版office有哪些新功能?
  • 结构体的定义与实例化
  • canvas详解03-绘制图像和视频
  • VB+ACCESS高校题库管理系统设计与实现
  • centos 安装 nginx
  • TCP/IP详解(一)
  • three.js的学习
  • Spark
  • poi生成excel饼图设置颜色
  • 多版本管理node.js
  • 【深入浅出 Spring Security(七)】RememberMe的实现原理详讲
  • Cesium 实战 - 使用 gltf-vscode 查看、预览以及编辑 glTF 和 GLB 模型
  • Python自动化测试框架:Pytest和Unittest的区别
  • 考研算法29天:希尔排序 【希尔排序】
  • RN 学习小记之使用 Expo 创建项目
  • python爬虫从入门到精通
  • 从0到1精通自动化,接口自动化测试——数据驱动DDT实战
  • 【微服务】springboot整合swagger多种模式使用详解
  • AI 绘画(1):生成一个图片的标准流程
  • CPU、内存、缓存的关系
  • AI黑客松近期比赛清单;36氪AI淘宝店盈利复盘;GitHub Copilot官方最佳实践;AI在HR领域的应用探索 | ShowMeAI日报
  • 想要让视频素材格式快速调整转换的方法分享
  • 面向对象分析与设计 UML2.0 学习笔记
  • [数据库系统] 五、数据增删改