1.AfxMessageBox
int AfxMessageBox( LPCTSTR lpszText, UINT nType = MB_OK, UINT nIDHelp = 0 );
int AFXAPI AfxMessageBox( UINT nIDPrompt, UINT nType = MB_OK, UINT nIDHelp = (UINT) –1 );
说明:
MB_ABORTRETRYIGNORE 消息框中显示Abort、Retry、Ignore按钮
MB_OK 显示OK按钮
MB_OKCANCEL 显示OK、Cancel按钮
MB_RETRYCANCEL 显示Retry、Cancel按钮
MB_YESNO 显示Yes、No按钮
MB_YESNOCANCEL 显示Yes、No、Cancel按钮
图标风格
MB_ICONINFORMATION 显示一个i图标,表示提示
MB_ICONEXCLAMATION 显示一个惊叹号,表示警告
MB_ICONSTOP 显示手形图标,表示警告或严重错误
MB_ICONQUESTION 显示问号图标,表示疑问
使用时,可以只调用AfxMessageBox(LPCTSTR lpszText);这样默认风格为AfxMessageBox(LPCTSTR lpszText,MB_OK|MB_ICONEXCLAMATION );
2.DDX_Text
void AFXAPI DDX_Text( CDataExchange* pDX, int nIDC, BYTE& value );
说明:
pDX 指向CDataExchange对象的指针。框架提供了这个对象,用于建立数据交换的环境,包括其方向。
nIDC 对话框、表格视图或控件视图中编辑控件的ID。
value 对对话框、表格视图或控件视图对象的成员变量的引用,其类型取决于你使用了DDX_Text的哪一个重载版本。
DDX_Text函数管理着对话框、表格视或控件视对象中的编辑控件与对话框、表格视或控件视对象的CString型数据成员之间的int,UINT,long,DWORD,CString,float或double型数据交换。
关于DDX的更多信息参见Visual C++联机教程中的“加入对话框”和Visual C++程序员联机指南中的“对话框数据交换与校验”。
3.CArchive
对象提供了一个类型安全缓冲机制,用于将可序列化对象写入 CFile 对象或从中读取可序列化对象。通常,CFile 对象表示磁盘文件;但是,它也可以是表示“剪贴板”的内存文件(CSharedFile 对象)。
4.UpdateData
BOOL UpdateData( BOOL bSaveAndValidate = TRUE );
参数说明:
bSaveAndValidate:标明那对话框是初始化(FALSE)还是数据恢复(TRUE)。
UpdateData() 是MFC的窗口函数,用来刷新数据的。
总的来说:操作系统会调用这个函数来初始化对话框中的数据,或者检索或者验证对话框中的数据。
简单说就是:如果UpdateData(TRUE) == 将控件的值赋值给成员变量;UpdateData(FALSE) == 将成员变量的值赋值给控件。
UpdateData()参数只有一个,默认为TRUE。
UpdateData(TRUE)
——刷新控件的值到对应的变量。(外部输入值交给内部变量)
即:控件的值—>变量。
UpdateData(FALSE)
—— 拷贝变量值到控件显示。(变量的最终运算结果值交给外部输出显示)
即:变量值—>控件显示。
5.AfxSocketInit
BOOL AfxSocketInit( WSADATA* lpwsaData = NULL );
返回值:
如果函数成功执行,则返回非零值,否则为0。
参数:
lpwsaData 指向WSADATA结构的指针。如果lpwsaData不等于NULL,那么调用::WSAStartup将填充WSADATA结构。这个函数同时也保证在应用程序结束之前调用::WSACleanup。
说明:
在你重载的CWinApp::InitInstance函数中调用这个函数以初始化WindowsSockets。
在调用 AfxSocketInit() 之前,需要包含 afxsock.h 头文件。
6.Create
Create ()函数使用syntax 参数指定的数据窗口对象源代码创建数据窗口对象,新创建的数据窗口对象将取代与数据窗口控件相关联的当前数据窗口对象,创建套接字
7.listen
int listen( int sockfd, int backlog);
sockfd:用于标识一个已捆绑未连接套接口的描述字。
backlog:等待连接队列的最大长度。
为了接受连接,先用socket()创建一个套接口的描述字,然后用listen()创建套接口并为申请进入的连接建立一个后备日志,然后便可用accept()接受连接了。listen()仅适用于支持连接的套接口,如SOCK_STREAM类型的。套接口s处于一种“变动”模式,申请进入的连接请求被确认,并排队等待被接受。这个函数特别适用于同时有多个连接请求的服务器;如果当一个连接请求到来时,队列已满,那么客户将收到一个WSAECONNREFUSED错误。
当没有可用的描述字时,listen()函数仍试图正常地工作。它仍接受请求直至队列变空。当有可用描述字时,后续的一次listen()或accept()调用会将队列按照当前或最近的“后备日志”重新填充,如有可能的话,将恢复监听申请进入的连接请求。
如无错误发生,listen()返回0。否则的话,返回-1,应用程序可通过WSAGetLastError()获取相应错误代码。
7.CSocketFile(发送和接收序列化数据)
CSocketFile是一种程序语言,所属Socket编程。进行Socket编程,不能不提到CSocketFile类,其实它并不是用来在Socket双方发送文件的,而是将需要的数据序列化,比如一些结构体数据,传给对方,这样,程序的CDocument()的序列化函数就完全可以和CSocketFile联系起来。例如你有一个CMyDocument实现了Serialize(),你可以这样来将你的文档数据传给Socket的另一方:
CSocketFile file( pSocket );
CArchive ar( &file, CArchive::store );
pDocument->Serialize( ar );
ar.Close();
同样,接收一方可以只改变上面的代码为CArchive ar( &file, CArchive::load );即可。
序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
序列化使其他代码可以查看或修改,那些不序列化便无法访问的对象实例数据。确切地说,代码执行序列化需要特殊的权限:即指定了 SerializationFormatter 标志的 SecurityPermission。在默认策略下,通过 Internet 下载的代码或 Internet 代码不会授予该权限;只有本地计算机上的代码才被授予该权限。
通常,对象实例的所有字段都会被序列化,这意味着数据会被表示为实例的序列化数据。这样,能够解释该格式的代码有可能能够确定这些数据的值,而不依赖于该成员的可访问性。类似地,反序列化从序列化的表示形式中提取数据,并直接设置对象状态,这也与可访问性规则无关。
对于任何可能包含重要的安全性数据的对象,如果可能,应该使该对象不可序列化。如果它必须为可序列化的,请尝试生成特定字段来保存不可序列化的重要数据。如果无法实现这一点,则应注意该数据会被公开给任何拥有序列化权限的代码,并确保不让任何恶意代码获得该权限。
8.CArchive 
CArchive 对象提供了一个类型安全缓冲机制,用于将可序列化对象写入 CFile 对象或从中读取可序列化对象。通常,CFile 对象表示磁盘文件;但是,它也可以是表示“剪贴板”的内存文件(CSharedFile 对象)。
给定的 CArchive 对象要么存储数据(即写入数据或将数据序列化),要么加载数据(即读取数据或将数据反序列化),但决不能同时进行。CArchive 对象的寿命只限于将对象写入文件或从文件读取对象的一次传递。因此,需要两个连续创建的 CArchive 对象将数据序列化到文件,然后从文件反序列化数据。
//操作符重载:
//插入操作
CArchive& operator<<(BYTE by);
CArchive& operator<<(WORD w);
CArchive& operator<<(LONG l);
CArchive& operator<<(DWORD dw);
CArchive& operator<<(float f);
CArchive& operator<<(double d);
CArchive& operator<<(int i);
CArchive& operator<<(short w);
CArchive& operator<<(char ch);
CArchive& operator<<(unsigned u);

//提取操作
CArchive& operator>>(BYTE& by);
CArchive& operator>>(WORD& w);
CArchive& operator>>(DWORD& dw);
CArchive& operator>>(LONG& l);
CArchive& operator>>(float& f);
CArchive& operator>>(double& d);

CArchive& operator>>(int& i);
CArchive& operator>>(short& w);
CArchive& operator>>(char& ch);
CArchive& operator>>(unsigned& u);
CArchive没有基类。
CArchive允许以一个永久二进制(通常为磁盘存储)的形式保存一个对象的复杂网络。可以在对象被删除时,还能永久保存。可以从永久存储中装载对象,在内存中重新构造它们,使得数据永久保留的过程就叫做“串行化”。
可以把一个archive对象看做一种二进制流。像输入/输出流一样,archive与一个文件相关联并且允许缓冲区从硬盘读出或读入数据。输入/输出流一样处理一系列的ASCII字符串,archive以高效无冗余的格式处理二进制数据。
必须在创建一个CArchive对象之前,创建一个CFile对象。必须确定archive的加载/存储与file的打开模式相容。每个file只能对应于一个active archive。
当你创建一个CArchive对象时,你就将它分配给一个CFile类(或者派生自CFile的类)的对象,此对象代表一个打开的文件。你同时确定可此archive将被用于加载还是存储。CArchive不仅可以处理简单的类型,也可以处理从CObject派生的类所产生的对象,此对象被设计用于Serialization。
CArchive还支持使用MFC Windows套接字类CSocket和CSocketFile编程。
 
CArchive类的成员:
数据成员:
   m_pDocument指向被串行化的CDocument对象
构造函数:
   CArchive:创建一个CArchive对象
   Abort:在不异常的情况下,关闭archive
   Close:冲掉未写入数据并且释放与CFile的连接
 
基础输入/输出:
Flush:从archive文件缓冲区中冲掉未写入数据
运算符>>:从archive中加载对象或者简单类型数据
运算符<<:向archive中存储对象或者简单类型数据
Read:读入原始类型
Write:写入原始类型
WriteString:写一行文本
ReadString:读一行文本
 
状态:
GetFile:获得此archive的CFile对象指针
GetObjectSchema:由Serialize函数调用,来确定被串行化的对象的版本
IsBufferEmpty:确定在一个Windows Socket接收过程中缓冲区是否被清空
IsLoading:确定archive文件是否被装载
IsStoring:确定archive文件是否被存储
SetObjectSchema:设置在archive文件中存储的对象概要
 
对象输入/输出 :
MapObject:在没有对文件串行化的映射中放置对象,但是此映射对参考的子对象有效
ReadClass:读入一个原先存储在WriteClass中的类的参考
ReadObject:调用对象用于装载的Serialize函数
SerializeClass:根据CArchive方向,读入或写入与CArchive对象有关联的类
SetLoadParams:设置加载数组增长的大小,须在对象加载之前调用,或者在MapObject和ReadObject之前调用
SetStoreParams:设置哈希表的大小和映射的块的大小,映射块在串行化的过程中识别对象
WriteClass:把CRuntimeClass的参考写入CArchive
WriteObect:调用一个对象的Serialize函数,此函数用于装载
9.GetDlgItem
CWnd::GetDlgItem
CWnd* GetDlgItem ( intnID) const;
void CWnd::GetDlgItem( int nID, HWND *phWnd) const;
说明:
参数 nID:接收消息的控件的标识;
参数phWnd:子类窗口的指针;
返回值:标识所标记的控件(或子类窗口)的指针;
10.EnableWindow
BOOL EnableWindow(HWND hWnd,BOOL bEnable);
bEnable:定义窗口是被允许,还是被禁止。若该参数为TRUE,则窗口被允许。若该参数为FALSE,则窗口被禁止。在 EnableWindow 成员函数调用之前,指示状态。 如果窗口此前已禁用,则返回值是非零。 返回值是0,则窗口先前启用或错误。若想获得更多的错误信息,可调用GetLastError函数。
Windows API函数。该函数允许/禁止指定的窗口或控件接受鼠标和键盘的输入,当输入被禁止时,窗口不响应鼠标和按键的输入,输入允许时,窗口接受所有的输入。该函数允许/禁止指定的窗口或控件接受鼠标和键盘的输入,当输入被禁止时,窗口不响应鼠标和按键的输入,输入允许时,窗口接受所有的输入。若窗口的允许状态将发生变化,WM_ENABLE消息将在Enblewindow函数返回前发送出去,若窗口已被禁止,它所有的子窗口也被禁止,尽管并未向子窗口发送WM_ENABLE消息。
窗口被激活前必须处于允许状态。比如,一个应用程序将显示一个无模式对话框并且已使该对话框的主窗口处于禁止状态,则在撤消该对话框之前须使其主窗口处于允许状态。否则,其他窗口将接受并被激活。若子窗口被禁止,则系统决定由哪个窗口接受鼠标消息时将忽略该窗口
缺省情况下,窗口被创建时被置为允许。若创建一个初始化为禁止状态的窗口,应用程序需要在CeateWindow或CeateWindowEX函数中定义WS_DISABLED样式。窗口创建后,应用程序可用EnbleWindow来允许禁止窗口。
应用程序可利用此函数允许/禁止对话框中的某个控件,被禁止的控件既不能接受键盘输入,也不能被用户访问,但不能禁用一个拥有输入焦点的控制项。
11.GetSystemMenu
HMENU GetSystemMenu(HWND hWnd,BOOL bRevert);
hWnd:拥有窗口菜单拷贝的窗口的句柄。
bRevert:标志位,指定将执行的操作。
如果此参数为FALSE,GetSystemMenu返回当前使用窗口菜单的拷贝的句柄。该拷贝初始时与窗口菜单相同,但可以被修改。
如果此参数为TRUE,GetSystemMenu重置窗口菜单到缺省状态。如果存在先前的窗口菜单,将被销毁。
返回值:如果参数bRevert为FALSE,返回值是窗口菜单的拷贝的句柄:如果参数bRevert为TRUE,返回值是NULL。
GetSystemMenu,函数名。该函数允许应用程序为复制或修改而访问窗口菜单(系统菜单或控制菜单)。
系统菜单是指我们点击窗体左上角的小图标时所弹出的菜单,其中好象有“恢复”.“移动”.“最大化”.“最小化”.“关闭”这么几个按钮.
这个菜单用普通的方法是不能编辑与改变的,但是我们可以通过api函数getsystemmenu来得到它的句柄,然后通过菜单相关的api函数就能改变它了。
12.SetDlgItemText
BOOLSetDlgltemText(HWND hDlg,int nlDDlgltem,LPCTSTR IpString);
hDlg:指定含有控件的对话框。
nlDDlgltem:标识带有将被设置的标题和文本的控件。
IpString:指向一个以NULL结尾的字符串指针,该字符串指针包含了将被复制到控件的文本。
返回值:如果函数调用成功,则返回值为非零值。如果函数调用失败,则返回值为零。若想获得更多的错误信息,请调用GetLastError函数
SetDlgItemText是一种函数,功能是设置对话框中控件的文本和标题。函数原型是BOOLSetDlgltemText(HWND hDlg,int nlDDlgltem,LPCTSTR IpString)。
13. SendTo
SendTo是一个计算机函数,指向一指定目的地发送数据,sendto()适用于发送未建立连接的UDP数据包 (参数为SOCK_DGRAM)。
int FAR sendto (
IN SOCKET s,
IN const char FAR * buf,
IN int len,
IN int flags,
IN const struct sockaddr FAR *to,
IN int tolen);
返回值为整型,如果成功,则返回发送的字节数,失败则返回SOCKET_ERROR。
系统解释:
s 套接字
buff 待发送数据的缓冲区
size 缓冲区长度
Flags 调用方式标志位, 一般为0, 改变Flags,将会改变Sendto发送的形式
addr (可选)指针,指向目的套接字的地址
len addr所指地址的长度
14.Atoi
int atoi(const char *nptr);
atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。int atoi(const char *nptr) 函数会扫描参数 nptr字符串,会跳过前面的空白字符(例如空格,tab缩进)等。如果 nptr不能转换成 int 或者 nptr为空字符串,那么将返回 0 [1]  。特别注意,该函数要求被转换的字符串是按十进制数理解的。atoi输入的字符串对应数字存在大小限制(与int类型大小有关),若其过大可能报错-1。
 int main(void)
{
    int n;
    char str = “12345.67”;
    n = atoi(str);
    printf(“n=%d\n”,n);
    return 0;
}
输出:
n = 12345
15./
点分十进制数串 <----> 长度为32位的网络字节序二进制值 */
in_addr_t   inet_addr(const char *strptr);
int         inet_aton(const char *cp, struct in_addr inp)
char
       inet_ntoa(struct in_addr in);
15.Send
int send( SOCKET s, const char FAR *buf, int len, int flags );
不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。
(1)第一个参数指定发送端套接字描述符;
(2)第二个参数指明一个存放应用程序要发送数据的缓冲区;
(3)第三个参数指明实际要发送的数据的字节数;
(4)第四个参数一般置0
send()是一个计算机函数,功能是向一个已经连接的socket发送数据,如果无错误,返回值为所发送数据的总数,否则返回SOCKET_ERROR。

关于mfc常用系统函数的使用及说明相关推荐

  1. MFC 常用系统函数

    1.获取当前路径: char path[MAX_PATH];GetCurrentDirectoryA(MAX_PATH,path); 1 2 1 2 2.获取系统时间 需要添加头文件:#include ...

  2. MySQL笔记(三)常用系统函数

    这是我在学习Mysql之路上做的笔记,今天将它粘出来.这一篇主要是Mysql常用系统函数.有错误的欢迎大家指出... 数据库的创建参考我的另一篇博客 https://blog.csdn.net/csd ...

  3. c语言有哪些系统函数,C语言常用系统函数.doc

    C语言常用系统函数.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3.该文档所得 ...

  4. php常用系统函数库,PHP常用函数大全

    php usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. time_sleep_ ...

  5. python123测试3平方根格式化_Python3常用系统函数帅哥定制版

    Python3常用系统函数JSON帅哥定制版 没错,这里的帅哥指的就是我自己 安装 安装pip3 wget --no-check-certificate https://pypi.python.org ...

  6. PHP常用系统函数帅哥特供版

    [TOC] PHP常用系统函数帅哥特供版 常用操作 定界符 <<<EOF内容EOF; 1.PHP定界符的作用就是按照原样,包括换行格式什么的,输出在其内部的东西: 2.在PHP定界符 ...

  7. Python3常用系统函数帅哥定制版

    Python3常用系统函数JSON帅哥定制版 没错,这里的帅哥指的就是我自己 安装 安装pip3 wget --no-check-certificate https://pypi.python.org ...

  8. c语言的常用系统函数库,C语言常用系统函数daquan.pdf

    C语言常用系统函数daquan ÿÿÿÿ 常用系统函数表 这里只收录了一些 VC++6.0 变异环境支持的常用的函数,使用不同的编译系统需参 考编译系统的文档. 1. 缓冲区操作函数 函数名:_mem ...

  9. Linux命令【四】文件+虚拟内存+常用系统函数

    File*其实是一个结构体 文件描述符FD:索引到对应的磁盘文件 文件读写位置指针FP_POS,如果同时读写需要注意文件指针的位置 I/O缓冲区BUFFER:保存内存指针,默认大小是8kb,用于减小我 ...

最新文章

  1. jquery easyui的应用-2
  2. Debian6 Squeeze上安装xen
  3. Oracle 跨resetlogs的恢复
  4. linux 权限 mask,Linux mask有效权限详解
  5. HDU 6249 Alice’s Stamps(dp)
  6. Nacos配置中心-命名空间与配置分组
  7. Ubuntu16.04通过wine环境安装微信与QQ等软件
  8. Eclipse安装VJET报错解决办法
  9. Unicode 和 UTF-8 有什么区别?
  10. Boost Graph Library 快速入门
  11. envi 面向对象遥感图像分类
  12. 选择排序 简单选择排序 直接选择排序的区别
  13. java 工作流引擎调研总结
  14. ps_裁剪出圆形区域并将多余透明去掉
  15. vscode c++ code runner 配置 opencv
  16. python外星人入侵游戏
  17. 基于xlsx-populate实现的前端埋点导出
  18. mt2503 [ShapeEngine]泰语音标字符发生偏移
  19. python程序随机画30个星星_Python3图形(绘制星星)
  20. [租房]刚步入社会的小萌新,休想坑小妹妹,安排!

热门文章

  1. v-bind绑定无效 - Vue
  2. [iOS开发]iOS中的Hash
  3. login登录页面 html,login.html
  4. 有哪些「神奇」的数据获取方式?
  5. 微信小程序使用百度api获取天气信息 —— 微信小程序教程系列(16)
  6. JS 判断客户端环境(以及如何区分QQ客户端和QQ浏览器)
  7. html5制作毕业光盘,同学聚会的视频和照片编辑制作,最后刻录成光盘 每人一张(数据刻录)...
  8. ubuntu护眼第二大神器 Redshift
  9. 杭电OJ——第1000,1001题
  10. LVTTL转LVDS GM8285C,28位LVDS发送器,替代GM8283