文章目录
- 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"江西");//修改
}
删除
void CDemoEditDlg::OnBnClickedButton4()
{
	CListCtrl* listctrl = (CListCtrl*)GetDlgItem(IDC_LIST2);
	//删除
	POSITION pos = listctrl->GetFirstSelectedItemPosition();
	int nSel = listctrl->GetNextSelectedItem(pos);
	listctrl->DeleteItem(nSel);//删除
}




















