MFC疑问 在MFC的编程过程中什么时候用的是win32 API函数,什么时候不用引用?怎么可以知道自己用的是全局的函数呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 全局函数一般以Afx开头吧API前面有:: 显示的用API而不用MFC提供的同名函数SetWindowText你需要再前面加 :: 否则用的就是MFC提供的类的同名成员函数.如果MFC提供的类没有这个同名函数,那么 直接调用的就是API.可以不加::这种关系如同全局变量和局部变量.在局部变量的生命周期内,局部变量的优先权更高.同理 API和同名类成员函数,成员函数的优先级更高,要想调用API就必须显示加入:: 如同以下int i = 1;int _tmain(int argc, _TCHAR* argv[]){ int i = 0; int a = i; a = ::i;//a = 1 return 0;} 又如:void CView::OnDraw(){ SetWindowText(...) //调用的是同名成员函数 ::SetWindowText(...) // 调用的是API} 在MFC中::为API和afx为全局 MFC是把win32 api封装到类里面了,所以如果是用对象来引用的方法,一般就是mfc的函数,比如dlg.Create(...);如果直接将::放在函数前面的,就是引用win32 api了。 本帖最后由 xianglitian 于 2010-04-07 14:06:05 编辑 CMD的system函数对系统有要求吗 手机版视频监控系统设计方案可行性分析 MFC时间选择器的使用 socket收发报文时间长,是不是和网络有关系? VC中对二纬数组的操作问题??? <---高分 如何给工具条加上一个标题?(把工具条悬浮出来后能看到) 请问如何用VC6.0来编译 核心驱动程序中的 sys文件? 哪些高手有分析设计CTI系统的经验?可否交流交流一下? 请问VB代码=》VC代码的问题 请问如何用一个程序关闭另一程序 EVC关于重绘的问题 PreTranslateMessage中sendmessage
API前面有::
你需要再前面加 :: 否则用的就是MFC提供的类的同名成员函数.
如果MFC提供的类没有这个同名函数,那么 直接调用的就是API.可以不加::这种关系如同全局变量和局部变量.
在局部变量的生命周期内,局部变量的优先权更高.同理 API和同名类成员函数,成员函数的优先级更高,要想调用API就必须显示加入::
int i = 1;
int _tmain(int argc, _TCHAR* argv[])
{
int i = 0;
int a = i;
a = ::i;//a = 1
return 0;
}
void CView::OnDraw()
{
SetWindowText(...) //调用的是同名成员函数
::SetWindowText(...) // 调用的是API
}