一个关于win32api编程的简单问题 请问在WIN32 API中使用哪个函数能实现在窗体上创建一个用于输入文字或数字的框(类似于VB、VC、C#中的textbox控件)。然后又该使用哪个函数来获取该框中所输入的东西? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 那CreateWindow的第一个参数应该选那个Class? 用EDIT其实你要建的是一个edit box HWND Input_IPA = CreateWindow( "EDIT", NULL, WS_VISIBLE | WS_CHILD, 70, 10, 25, 20, hWnd, NULL, hInstance, NULL); 是这样吗?另外如何获得输入到EDIT中的数据呢? 倒数第三个参数不对,对于子窗口它应该是子窗口的ID,如果设为NULL的话,你就没办法得到EDIT中的数据了。用GetDlgItemText来获取内容。 获取里面的内容:GetWindowText() to:wltg2001(红猪)。谢谢朋友你的回复,但倒数第三个参数是代表menu的。倒数第四个才是代表窗口ID的,我的这个程序中没有子窗口,EDIT控件是建立在父窗口上的。 hWndEdit=CreateWindow("EDIT", //创建编辑框NULL, WS_CHILD|WS_VISIBLE|WS_VSCROLL|ES_MULTILINE|WS_BORDER,70, 10, 25, 20, hwnd,(HMENU)ID_EDITCHILD,hInst,NULL); 那么GetDlgItemText的第一个参数所指的句柄到底是“EDIT"还是父窗口的句柄?我的这个程序其实很简单,只是有一个父窗口,而这个EDIT窗口就建立在这个父窗口上。还有该函数的第二个参数应该这么填?我这个EDIT窗口没有标题,纯粹是当一个输入框在用。 我说的没有错,CreateWindow倒数第三个参数对于一个子窗口来说代表是这个控件的ID,倒数第四个参数指的父窗口的句柄。 用GetDlgItemText和GetWindowText其实都能得到控件上的字符,不过前者不需要控件的窗口句柄,所以GetDlgItemText第一个参数就是父窗口的句柄,第二个参数是利用CreateWindow创建时指定的控件ID,所以不能设为NULL。GetWindowText则必须要用到控件的窗口句柄,可以先用GetDlgItem来获取这个控件的句柄。 谢谢红猪兄不厌其烦的回复,你说“第二个参数是利用CreateWindow创建时指定的控件ID”,请问我该怎么指定这个ID?又怎么获取这个ID?实在是初学WIN32api编程。 既然用CreateWindow创建了edit,直接用edit的hwnd就可以啊,还要id干啥?用GetWindowText这个edit的id你可以随便指定一个.不和这个窗口上的其它id不重复就行. Input_IP = CreateWindow( "EDIT", NULL, WS_CHILD|WS_VISIBLE|ES_MULTILINE|WS_BORDER, 70, 10, 120, 20, hWnd, (HMENU)ID_EDIT, hInstance, NULL); 上面是我定义的EDIT窗口,主要是用于输入IP地址的。用了GetDlgItemText(hWnd,ID_EDIT, receives_IP, 11);这个函数,却似乎得不到输入的IP,下面是IP转换的代码:string_IP = puts(receives_IP);IP = (const char*)string_IP;_connectAddr=inet_addr(IP);WHCSocketInceptPort.sin_addr.S_un.S_addr = _connectAddr; 这么简单的问题还要问CSDN,建议看《Windows 程序设计》(上、下册)只要看完上册基础知识就可以了。 大量数据频繁写,如何效率高? [求助]试图匹配参数列表“(CString, UINT)” 错误 关于字符串转换问题 CALLBACK 参数 从sql取出的BLOB数据怎样在NI的CWgraph控件显示?(数据类型转换) 到哪里下载AVICap类? 请问:如何对已经存在的位图进行旋转?? 还是CFile类的问题 同步,是件大事 MFC POST Web服务器为什么我填对了卡密服务器提示卡密错误,是编码问题吗? 通过拖曳应用程序到对话框,得到了应用程序的路径和图标,如何向list control添加应用程序图标? 在UNICODE下怎么把WORD型转换为CString型的?
"EDIT",
NULL,
WS_VISIBLE | WS_CHILD,
70,
10,
25,
20,
hWnd,
NULL,
hInstance,
NULL);
是这样吗?另外如何获得输入到EDIT中的数据呢?
NULL, WS_CHILD|WS_VISIBLE|WS_VSCROLL|ES_MULTILINE|WS_BORDER,
70,
10,
25,
20,
hwnd,
(HMENU)ID_EDITCHILD,
hInst,
NULL);
"EDIT",
NULL,
WS_CHILD|WS_VISIBLE|ES_MULTILINE|WS_BORDER,
70,
10,
120,
20,
hWnd,
(HMENU)ID_EDIT,
hInstance,
NULL);
上面是我定义的EDIT窗口,主要是用于输入IP地址的。用了GetDlgItemText(hWnd,ID_EDIT, receives_IP, 11);这个函数,却似乎得不到输入的IP,下面是IP转换的代码:
string_IP = puts(receives_IP);
IP = (const char*)string_IP;
_connectAddr=inet_addr(IP);
WHCSocketInceptPort.sin_addr.S_un.S_addr = _connectAddr;
只要看完上册基础知识就可以了。