12 MFC常用控件(一)

news/2024/11/25 4:36:00/

文章目录

  • 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.ppmy.cn/news/644794.html

相关文章

ChatGPT中的Token:了解聊天模型的基本单位

✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入:全栈弄潮儿的个人社区 📙 专栏地址:AI大模型 ChatGPT中的Token是什么? 在ChatGPT…

openwrt控制天翼网关定时重启

由于天翼网关不支持定时重启,另外app里设置定时重启也没有作用, 所以查找了一些相关工具和用法,再结合前辈的经验:参考的博客网址,自己最终把该功能实现了。 首先需要用winscp登陆到刷了openwrt的路由器中&#xff0c…

脚本重启电信天翼网关

背景:家里光猫经常断网,重启才能恢复。 光猫位置拔电源不方便,telnet登录重启需破解有风险,因此采用curl模拟登录web重启。最后通过其他脚本监测,实现断网时自动执行重启。 #!/bin/sh a=$1 loginfo=`curl -s -L http://…

天翼网关未欠费有信号且不能上网解决办法

天翼网关 天翼网关是“光猫智能路由器”的集合体。详情介绍请见https://www.189.cn/sh/support/cycx/88655.html 问题描述 宽带未欠费、有WIFI信号、用网线连接电脑等有信号,都不能上网。 分析 因为 天翼网关是“光猫智能路由器”的集合体,所以猜测是…

电信光猫天翼网关usb插U盘共享文件

ftp用不了,samba可以用。 1.在电脑文件管理器中输入\\192.168.1.1打开,在弹出框中输入光猫背后的账号密码登录即可打开共享的U盘。 2.在手机ES文件管理器中,点右上角三点,新建,在弹出框中填入192.168.1.1和选择samba…

如何通过公网访问私有网盘,天翼网关如何端口转发

有时候你需要在家建个私有网盘,服务器都买好了建立好了,就是外网访问不了,这时候怎么办呢 废话不多说,一步一步照做: 第一步 先确认以下有没有帮我这个文章点赞😄 确认自己有没有开通公网ip 直接百度搜索…

电信天翼网关接不上服务器无信号咋小,天翼网关有wifi信号,但不能上网的问题汇总解答...

我们很多时候都会遇到这样一个问题,明明天翼网关上有wifi,电脑或者手机连接上却没有网络,这是怎么回事呢?今天我就为大家汇总了一些相关问题。 宽带故障。首先,我们需要检查下宽带是否出现了故障;因为如果宽带本身出现了问题&…

天翼网关刷linux,天翼网关3 友华PT926E通用 全网首发 免复位/TTL/FTP获取超密及根目录方法!(四川已测)...

本帖最后由 浅爱酱 于 2021-1-21 17:01 编辑 所需工具: U盘*1 理论适用于 大部分天翼网关3 即便不是这个型号也应该可以提取文件 剩下的就看你自己研究了1. 将准备的U盘插入光猫 U盘内至少应有一个文件夹 2020/3/11. 更新 新增跳过2-7步骤方法 请见帖子后半部分.2. 新增 永久开…