关于MFC函数调用的问题。

129 2024-09-01 10:33

一、关于MFC函数调用的问题。

1、要理解继承的意思。 CTestDlg 类继承于 CWnd 类,因此CTestDlg 类拥有了CWnd 类的一些数据和函数,这些数据和函数已经归 CTestDlg 类所有。一般说来,父类和子类的数据和函数是分开的,并不共享。

2、要从外部调用类的成员函数,需要先建立类的对象。比如警察类是一个类,枪是警察类的一个数据成员,但是警察类是一个泛指,定义在警察类中的枪也是一个泛指,是说警察类的对象都有一把枪,但警察类不代表一个具体的人(即对象),要得到一把实实在在的枪,你必须指明具体哪个警察,比如说,北京东城区32楼保安张三,然后才能取得它的数据成员,张三 。枪,这时候,这个张三的枪才是一把实实在在的枪,才可以对它进行实际的操作。

二、SDK,API,MFC 三者的关系是什么

SDK - Software development kit API - Application programming interface MFC - Microsoft Foundation Class 就win32编程来说,SDK是windows中的开发包,它提供了一套接口,叫API。 微软用把这套API封装了一下,就叫MFC。 比如说要创建一个窗口,CreateWindowEx函数,它是一个Win32 API函数,由Win SDK提供。MFC用类把它封装起来,提供了CWin::Create。 谈开去,所有提供二次开发的软件都会有一个软件包叫SDK,提供一个接口,也叫API。

三、怎样用MFC实现判断点与线关系

void CMy222Dlg::OnBnClickedOk()

{

CString kk, bb, xx, yy;

float k=0.0, b=0.0, x=0.0, y=0.0;

float value1=0.0,value2=0.0;

CString OutValue;

GetDlgItemText(IDC_EDIT_K,kk);

GetDlgItemText(IDC_EDIT_B,bb);

GetDlgItemText(IDC_EDIT_X,xx);

GetDlgItemText(IDC_EDIT_Y,yy);

if(!InputTest(kk,bb,xx,yy))return;

k=_ttof(kk);

b=_ttof(bb);

x=_ttof(xx);

y=_ttof(yy);

value1=k*x+b;

value2=y;

OutValue=value1==value2 ? _T(是) : _T(否);

SetDlgItemText(IDC_STATIC_OutValue,OutValue);

}

// 输入数据合法性测试

BOOL CMy222Dlg::InputTest(CString kk, CString bb, CString xx, CString yy)

{

BOOL ReValue=TRUE;

if(kk.IsEmpty() && bb.IsEmpty())

{

AfxMessageBox(_T(输入错误:k和b不能同时为空!!));

ReValue=FALSE;

}

if(xx.IsEmpty() || yy.IsEmpty())

{

AfxMessageBox(_T(输入错误:x或y不能为空!!));

ReValue=FALSE;

}

if(!MeIsNumber(kk))

{

AfxMessageBox(_T(输入错误:k输入的不是数字!!));

ReValue=FALSE;

}

if(!MeIsNumber(bb))

{

AfxMessageBox(_T(输入错误:b输入的不是数字!!));

ReValue=FALSE;

}

if(!MeIsNumber(xx))

{

AfxMessageBox(_T(输入错误:x输入的不是数字!!));

ReValue=FALSE;

}

if(!MeIsNumber(yy))

{

AfxMessageBox(_T(输入错误:y输入的不是数字!!));

ReValue=FALSE;

}

return ReValue;

}

// 测试是否为数据

BOOL CMy222Dlg::MeIsNumber(CString x)

{

CString str=_T(1234567890.);

for(int i=0;i<x.GetLength();i++)

{

if(str.Find(x.GetAt(i), 0)==-1)

return FALSE;

}

return TRUE;

}

四、新手上路:“如何在mfc实现输入输出关联?”

拖2个编辑框1个按钮, 右键编辑框, 添加变量. 一个命名为CEdit m_edit1; 另一个CEdit m_edit2;

双击button添加函数,里面写

CString str;

m_edit1.GetWindowText(str);

m_edit2.SetWindowText(str);

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片