MFC 进制之前的转化



// MFC0XDlg.cpp : 实现文件
//


#include "stdafx.h"
#include "MFC0X.h"
#include "MFC0XDlg.h"
#include "afxdialogex.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#endif




// 用于应用程序“关于”菜单项的 CAboutDlg 对话框


class CAboutDlg : public CDialogEx
{
public:
CAboutDlg();


// 对话框数据
enum { IDD = IDD_ABOUTBOX };


protected:
virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持


// 实现
protected:
DECLARE_MESSAGE_MAP()
};


CAboutDlg::CAboutDlg() : CDialogEx(CAboutDlg::IDD)
{
}


void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}


BEGIN_MESSAGE_MAP(CAboutDlg, CDialogEx)
END_MESSAGE_MAP()




// CMFC0XDlg 对话框






CMFC0XDlg::CMFC0XDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(CMFC0XDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}


void CMFC0XDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}


BEGIN_MESSAGE_MAP(CMFC0XDlg, CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//ON_BN_CLICKED(IDC_BUTTON1, &CMFC0XDlg::OnBnClickedButton1)
//ON_EN_CHANGE(IDC_EDIT1, &CMFC0XDlg::OnEnChangeEdit1)
ON_BN_CLICKED(IDC_BUTTON2, &CMFC0XDlg::OnBnClickedButton2)
//ON_EN_CHANGE(IDC_EDIT6, &CMFC0XDlg::OnEnChangeEdit6)
ON_EN_UPDATE(IDC_EDIT3, &CMFC0XDlg::OnEnUpdateEdit3)
ON_EN_CHANGE(IDC_EDIT3, &CMFC0XDlg::OnEnChangeEdit3)
END_MESSAGE_MAP()




// CMFC0XDlg 消息处理程序


BOOL CMFC0XDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();


// 将“关于...”菜单项添加到系统菜单中。


// IDM_ABOUTBOX 必须在系统命令范围内。
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);


CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}


// 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
//  执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标


// TODO: 在此添加额外的初始化代码


return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}


void CMFC0XDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialogEx::OnSysCommand(nID, lParam);
}
}


// 如果向对话框添加最小化按钮,则需要下面的代码
//  来绘制该图标。对于使用文档/视图模型的 MFC 应用程序,
//  这将由框架自动完成。


void CMFC0XDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文


SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);


// 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;


// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
}


//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CMFC0XDlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}






void CMFC0XDlg::get0X()
{
CString strLine = "";
CString strL = "";


GetDlgItemText(IDC_EDIT3,strLine);


int iSize = strLine.GetLength();


if (! (iSize%2))
{
CString strNew ="";
for (int i = iSize/2 ;i>0;i--)
{
strL = strLine.Left(2);
iSize -=2;
strLine = strLine.Right(iSize);
strL = "0x"+strL;
strL += ",";
strNew += strL;
}
strNew = strNew.Left(strNew.GetLength()-1);
SetDlgItemText(IDC_EDIT2,strNew);




}
else
{
CString strItem = "";
CString strNew ="";


strItem = strLine.Left(1);
strItem = "0x0" + strItem +",";
strLine =strLine.Right(strLine.GetLength()-1);
iSize = strLine.GetLength();


for (int i =iSize/2;i>0;i--)
{
strL = strLine.Left(2);
iSize -=2;
strLine = strLine.Right(iSize);
strL = "0x"+strL;
strL += ",";
strNew += strL;
}
strNew = strItem + strNew;
strNew = strNew.Left(strNew.GetLength()-1);
SetDlgItemText(IDC_EDIT2,strNew);


}
}


void CMFC0XDlg::get2(void)


{
CString strDate = "";
CString strNewDate = "";




int iDate = 0;


GetDlgItemText(IDC_EDIT3,strDate);


iDate = atoi(strDate);
CString d ="";  
while (iDate)
{

d.Format(_T("%d"),(iDate%2));
strNewDate += d;
iDate = iDate/2;
}
strNewDate.MakeReverse();

for (int iCont = strNewDate.GetLength();iCont>0;)
{
iCont -= 4;
strNewDate.Insert(iCont," ");
}

SetDlgItemText(IDC_EDIT4,strNewDate);
}


void CMFC0XDlg::getTen()
{
CString strDate = "";
char strNewDate[100] = {};


int iDate = 0;


GetDlgItemText(IDC_EDIT3,strDate);
iDate = atoi(strDate);


sprintf_s(strNewDate,_T("%X"),iDate);


SetDlgItemText(IDC_EDIT5,strNewDate);
}


void CMFC0XDlg::getAscii()
{
CString strDate = "";


int iDate = 0;


GetDlgItemText(IDC_EDIT3,strDate);
iDate = atoi(strDate);


strDate.Format(_T("%c"),iDate);


SetDlgItemText(IDC_EDIT6,strDate);


}


void CMFC0XDlg::getEight()
{


CString strDate = "";


int iDate = 0;


GetDlgItemText(IDC_EDIT3,strDate);
iDate = atoi(strDate);


strDate.Format(_T("%o"),iDate);


SetDlgItemText(IDC_EDIT7,strDate);
}




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


get0X();
get2();
getTen();
getAscii();
getEight();


CEdit *pe = (CEdit*)GetDlgItem(IDC_EDIT2);
pe->SetFocus();
pe->SetSel(0,-1);
}








void CMFC0XDlg::OnEnUpdateEdit3()
{
// TODO:  如果该控件是 RICHEDIT 控件,它将不
// 发送此通知,除非重写 CDialogEx::OnInitDialog()
// 函数,以将 EM_SETEVENTMASK 消息发送到该控件,
// 同时将 ENM_UPDATE 标志“或”运算到 lParam 掩码中。


//#1015


CString str = "";
GetDlgItemText(IDC_EDIT3,str);
if (str.GetLength()>0)
{
char c = str.GetAt(str.GetLength()-1);
if (c == '\n')
{
str = str.Left(str.GetLength()-2);
SetDlgItemText(IDC_EDIT3,str);
return OnBnClickedButton2();
}
}
return;


// TODO:  在此添加控件通知处理程序代码
}




void CMFC0XDlg::OnEnChangeEdit3()
{
// TODO:  如果该控件是 RICHEDIT 控件,它将不
// 发送此通知,除非重写 CDialogEx::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。


//#1015
CString str ="99";


// TODO:  在此添加控件通知处理程序代码

}


//加到界面空值中去,优化界面 #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' language='*'\"")

猜你喜欢

转载自blog.csdn.net/liuyudong_/article/details/80656783
MFC