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

MFC控件按钮的使用

MFC窗口的创建/消息映射机制

mfc.h

#include<afxwin.h>//mfc头文件

//应用程序类
class MyApp:public CWinApp //继承于应用程序类
{
public:
	//程序入口
	virtual BOOL InitInstance();
};

//框架类
class MyFrame:public CFrameWnd
{
public:
	MyFrame();

	//声明宏 提供消息映射机制
	DECLARE_MESSAGE_MAP()

	afx_msg void OnLButtonDown( UINT, CPoint );

	afx_msg void OnChar( UINT, UINT,UINT ) ;

	afx_msg void OnPaint( );
};

mfc.cpp

#include "mfc.h"

MyApp app;//全局应用程序对象,有且仅有一个

BOOL MyApp::InitInstance()
{
	//创建窗口
	MyFrame * frame = new MyFrame;

	//显示和更新
	frame -> ShowWindow(SW_SHOWNORMAL);
	frame -> UpdateWindow();

	m_pMainWnd = frame;//保存指向应用程序的主窗口的指针

	return TRUE;//返回正常初始化
}

//分界宏
BEGIN_MESSAGE_MAP(MyFrame,CFrameWnd)
	ON_WM_LBUTTONDOWN()//鼠标左键按下

	ON_WM_CHAR()//键盘按下

	ON_WM_PAINT( )//绘图

END_MESSAGE_MAP()

MyFrame::MyFrame()
{
	Create(NULL,TEXT("mfc"));//窗口标题
}

//鼠标
void MyFrame::OnLButtonDown( UINT, CPoint point)
{
	/*TCHAR buf[1024];
	wsprintf(buf,TEXT("x=%d,y=%d"),point.x,point.y);

	MessageBox(buf);*/

	//mfc中的字符串 CString
	CString str;
	str.Format(TEXT("x=%d,.,y=%d"),point.x,point.y);
	MessageBox(str);


}

//键盘
void MyFrame::OnChar(UINT key, UINT,UINT)
{
	CString str;
	str.Format(TEXT("按下了%c键"),key);
	MessageBox(str);
}

//绘图
void MyFrame::OnPaint()
{
	CPaintDC dc(this);//CDC里找
	dc.TextOutW(100,100,TEXT("upup"));//画文字

	dc.Ellipse(10,10,100,100);//画椭圆

	//统计字符串长度
	int num=0;
	char *p ="aaaa";
	num=strlen(p);

	//统计宽字节的字符串长度
	wchar_t *p2=L"bbb";
	num = wcslen(p2);

	//char * 与 CString之间的转换
	//char * ->CString
	char *p3 = "ccc";
	CString str = CString(p3);
	//CString->char *
	CStringA temp;
	temp = str;
	char *pp = temp.GetBuffer(); 
}

复制按钮

//复制按钮
void CMy03EditCtrlDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	//获取到edit1的内容,然后给edit2赋值

	CString str;
	m_edit1.GetWindowTextW(str);
	m_edit2.SetWindowTextW(str);
}

退出按钮

//退出按钮
void CMy03EditCtrlDlg::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码

	//exit(0);//退出程序

	//退出当前对话框
	//CDialog::OnOK();
	CDialog::OnCancel();
}

设置内容/获取内容(值)

 将控件内容同步到变量中updatedata(true)

void CMy03EditCtrl_2Dlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	//利用关value的方式 设置和改变edit的内容

	//设置内容
	m_text = TEXT("哈哈");

	//将变量内容同步到控件中
	UpdateData(FALSE);
}


void CMy03EditCtrl_2Dlg::OnBnClickedButton2()
{
	// TODO: 在此添加控件通知处理程序代码

	//将控件的内容同步到变量中
	UpdateData(TRUE);

	MessageBox(m_text);
}

下拉框

//下拉框的添加操作
	m_cbx.AddString(TEXT("唐僧"));
	m_cbx.AddString(TEXT("孙悟空"));
	m_cbx.AddString(TEXT("猪八戒"));

	//设置默认选择第一项
	m_cbx.SetCurSel(0);

	//插入
	m_cbx.InsertString(3,TEXT("白龙马"));

	//删除
	m_cbx.DeleteString(2);//从0开始的

	//获取1号的索引的具体内容
	CString str;
	m_cbx.GetLBText(1,str);
	MessageBox(str);


void CcomboBoxCtrlDlg::OnCbnSelchangeCombo1()
{
	// TODO: 在此添加控件通知处理程序代码

	//拿到索引位置,一有切换就会触发
	int index = m_cbx.GetCurSel();
	CString str;
	m_cbx.GetLBText(index,str);
	MessageBox(str);
}


http://www.kler.cn/a/585751.html

相关文章:

  • 破局企业数据泄露风险:安当TDE透明加密重塑文件服务器安全防线
  • Flutter+Rust Android, IOS移动端适配通用流程及依赖库处理(Openssl, Curl等)
  • 百度百科更新!树莓集团宜宾项目的深远影响与意义
  • leetcode hot100贪心
  • LeetCode hot 100—滑动窗口最大值
  • win32汇编环境,对话框程序中创建托盘示例一
  • PyTorch 系列教程:探索自然语言处理应用
  • 基于RWA 与 AI-Agent 协同的企业数字化生态构建
  • Go语言环境搭建并执行第一个Go程序
  • X86 RouterOS 7.18 设置笔记十:上海电信IPTV使用msd_lite实现组播转单拨
  • C++小课堂——friend友元
  • 基础知识《DICT协议》
  • 路由器配置命令
  • 完善机器人:让 DeepSeek 生成 API 接口,并在网页上调用
  • MySQL 的 innodb_buffer_pool_size 参数配置指南
  • [AI QA] strace | 探索 a.out
  • 正则表达式 - 修饰符
  • 书籍品读:我的世界(陈州)
  • C语言实现括号匹配检查及栈的应用详解
  • 【综述】An Introduction to Vision-Language Modeling【二】