MFC-进制转化器

本文详细介绍了如何使用MFC在VS2010环境下实现2、8、10、16进制之间的相互转换。通过重写PreTranslateMessage()处理键盘事件,HexConverter()函数实现核心转换逻辑,利用各种转化函数如_strtoi64、strDes.Format()、strtoul()等进行数值的进制转换。此外,还讨论了不同进制转换的算法思路,如二进制转八进制采用每三位一组的方式,八进制转二进制则是逐位转换。欢迎分享更多优化方法。
摘要由CSDN通过智能技术生成

学习了一段时间的mfc,但是总是感觉学的比较零散,偶然发现一个MFC写的比较好的博客,因此打算在他的基础上来整体的学习MFC。

我自己的MFC编写环境为VS2010,如果存在版本的问题,请百度版本的修改方法。

本文在原文的基础上上添加了2进制到8进制的相互转化,原文:http://www.gymsaga.com/category/project/developc/mfc

运行界面如下:


在实现这个功能前,建立一个对话框的项目,自己命名,添加控件,建立类向导。

在头文件里面添加函数,分别如下:

	afx_msg void OnBnClickedButton1();
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	void HexConverter();
	CString BinToDec(CString strBin);
	CString DecToBin(CString strDec);
	CString BinToOct(CString strBin);
	CString OctToBin(CString strOct);

此时,源文件如下:

void CHexConverterDlg::OnBnClickedButton1()
{
	HexConverter();
	GetDlgItem(IDC_EDIT)->HideCaret();
}


BOOL CHexConverterDlg::PreTranslateMessage(MSG* pMsg)
{
	if (pMsg->message==WM_KEYDOWN)
	{
		if (pMsg->wParam==VK_RETURN)
		{
			HexConverter();
			GetDlgItem(IDC_EDIT)->HideCaret();
			return TRUE;
		}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值