001之IP基础对话框

在TCP/IP协议中,建立连接的两个进程(客户端和服务器)各自用一个socket(IP地址+TCP/UDP端口号)标识。在MFC中流式套接字(SOCK_STREAM)和数据报套接字(SOCK_DGRAM)分别对应TCP/UDP协议通信使用。

基础IP对话框如下,将输入的IP信息进行整合到文本框中。

地址框可以设置属性为只读,或者是将控件设置EnableWindow。

其中使用控件变量如下:

具体代码为:BYTE为unsigned char型,取值0-255;

 1     // TODO: 在此添加控件通知处理程序代码
 2     BYTE nfield[4];
 3     CString strIP;
 4     UpdateData();    //默认为true,将输入值传入控件,否则将控件变量值输出到文本框中
 5     
 6     if(ServerIP.IsBlank()||m_str_port =="")//判断输入变量是否合法
 7     {
 8         AfxMessageBox("IP地址与端口不能为空");
 9         return ;        //如不执行return 则会继续执行赋IP操作
10     }
11     //将IP传给地址框
12     ServerIP.GetAddress(nfield[0],nfield[1],nfield[2],nfield[3]);
13     strIP.Format("%d.%d.%d.%d",nfield[0],nfield[1],nfield[2],nfield[3]);
14     m_edit_address.SetWindowText(strIP+" :"+m_str_port);
15 }

MFC中涉及字符串处理的API函数都有A和W两个版本:

1)A结尾的表示使用ANSI编码:中文的Windows操作系统一般对应的就是GBK(英文占用一个字节 、汉字两个字节。 )

2)W结尾的表示使用UNICODE编码:UTF-16版本---英文两个字节、汉字两个字节 ;UTF-32版本---英文/汉字四个字节

如果你的软件将来只需要英文或汉文字符,那就选择A版本的API,如果有可能要使用多国文字,那么最好使用W版本的API。都不影响则无需理会,以上取值直接为SetWindowText。

MFC中控件大多有Get/Set开头的函数,一般Get是将控件的值写入到函参中,Set是将函参赋值给控件变量。

原文地址:https://www.cnblogs.com/maxonzou/p/10568809.html