VC++MFC中,通过控件对象或控件指针获取本控件ID可以使用GetDlgCtrlID函数,示例如下:
CEdit pEdit = (CEdit )GetDlgItem(IDC_EDIT1);//获取控件指针int nID = pEdit->GetDlgCtrlID();//获取该控件的ID
这是通过代码获取控件ID的方法,需要注意的是,这样获取的是一个“数字”ID,而不是在程序代码中使用的宏ID(如IDC_EDIT1)的名字,这个控件的宏ID名在编译之后是无法获取的。
IDC_EDIT1 这样的控件ID,实际是定义在resourceh中的一个宏定义,用于方便代码和对话框资源的管理,实际上,控件的ID就是一个数字,你可以在该h头文件中看到具体的定义,也可以在资源编辑器中,点击控件,查看它的“宏”ID。
listen()监听
accept()接收链接请求
访问客户端地址信息结构体client
clientsin_addr中储存客户端的ip地址
再转换格式就行了
因为Client是通信的主动方,即发起通信的一端,因此通信之前Client必须已知Server的IP和端口号才行。
通常的C/S模式通信的做法是先为Server申请公网IP,然后在client编程时指明欲连接的Server的IP和端口号,这样的client程序一旦安装后就内置了Server的IP;
另一种做法是在client的执行界面预留输入框,执行时允许用户输入Server的IP,然后实现通信,这两种方式都必须事先知道server的IP信息才行。
GetDlgItem(IDC_IPADDRESS1))是获取控件ID为IDC_IPADDRESS1的句柄
这个是MFC里的IP控件,调用GetAddress,取得IP地址,然后强转成CIPAddressCtrl指针类型。
在对话框 上 拖放一个List Control 控件 ID为 ID_LIST1
更改属性 样式为:Report(报表) 模式//切记这里
为ID_LIST1添加控件变量:CListCtrl m_list;
在适当位置(如对话框的初始化函数里)添加初始化代码:
m_listSetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);//(1)
m_listInsertColumn(1,"用户名",LVCFMT_CENTER,100);//(2)
m_listInsertColumn(1,"工作组",LVCFMT_CENTER,150);//(3)
m_listInsertColumn(2,"主机名",LVCFMT_CENTER,100);//
m_listInsertColumn(3,"IP地址",LVCFMT_CENTER,100);//
解释:(1)句的作用是:使列表整栏选择。
(2)句的作用是添加一个列,LVCFMT_CENTER意思是居中对齐,100是宽度
你可能问 为什么 第一个参数 和 (3)句都是1呢 ,(2)句应该是0啊?是的,应该是0,但是使用0后LVCFMT_CENTER就不起作用了,不信你看看,说明的是 如果没有0列,那么1列补上 但是 如果是 两个2,那么第二个2就真的第3列,第一个2就成了第四列,你自己做个实验就知道了。
然后在适当位置 如得到信息后
使用:
m_listInsertItem(0,"张三");// (6)注意这个函数
m_listSetItemText(0,1,"四号工作组");//(7)
m_listSetItemText(0,2,"lenovo0001");//(8)
m_listSetItemText(0,3,"1921681055");
解释:(6)句中第一个参数 为0表示 添加到 第一条记录,1代表第二条记录 类推,
(7)句 中的第一个参数是 设置 文本,第一个参数 是与之对应的 记录行
我可以帮助你,你先设置我最佳答案后,我百度Hii教你。你的串号我已经记下,采纳后我会帮你制作
代码仅供参考:
定义两个字符串变量,并且声明获取计算机名称和IP的函数GetLocalHostIPName(CString &sLocalName, CString &sIpAddress)。
CString m_strLocalIP; //本机计算机IPCString m_strLocalName; //本机计算机名
int GetLocalHostIPName(CString &sLocalName, CString &sIpAddress); //获取本机名称IP
定义函数GetHostName(CString &sLocalName, CString &sAddress)。
char name[128];gethostname(name, 128);//获得主机名
1)通过代码手动添加: addrinfo aiList = NULL; char aHost[MAX_MFC中的IP地址控件是由CIPAddressCtrl类封装的。你可以研究一下他的成员函数。
以上就是关于VC++MFC中怎样获得控件ID全部的内容,包括:VC++MFC中怎样获得控件ID、MFC关于读取客户端IP、MFC获取应用程序自身在公网IP及端口号等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)