文章目录
- 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 1025
CButton 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);//获取combBox
m_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);//删除
}