Int GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount);函数的第一个参数可用窗口ID号吗?

就是有这样一句:GetWindowText(IDC_EDIT1,ch1,10);中第一个参数给了一个控件的ID号,应该是窗口句柄啊,这是为什么?……高手能不能解释一下,I... 就是有这样一句:GetWindowText(IDC_EDIT1,ch1,10);中第一个参数给了一个控件的ID号,应该是窗口句柄啊,这是为什么?……高手能不能解释一下,ID号和句柄在此有什么联系吗?……请高手给具体解释下,谢了! 展开
 我来答
world_universe
2011-02-12 · 超过11用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:34.2万
展开全部
这句代码所在的那个类肯定把GetWindowText重载了。
控件ID不能直接转换成窗口句柄,必须用GetDlgItem函数来转换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友38c8e98
2011-02-12 · TA获得超过2658个赞
知道小有建树答主
回答量:1131
采纳率:0%
帮助的人:590万
展开全部
HANDLE(句柄)是windows操作系统中的一个概念。指的是一个核心对象在某一个进程中的唯一索引,而不是指针。
由于地址空间的限制,句柄所标识的内容对进程是不可见的,只能由操作系统通过进程句柄列表来进行维护。
句柄列表: 每个进程都要创建一个句柄列表,这些句柄指向各种系统资源,比如窗口、菜单、控件,线程,和文件等,进程中的所有线程都可以访问这些资源
handle在整个windows中是唯一的,而id在最小的范围内是唯一的

ID跟handle不同
handle可以直接在所有程序中应用,因为它是整个windows系统的资源。
但id却只可以从最小范围内使用,它只属于最小范围内的资源。
如对话框窗口控件的ID只在该对话框有效
其他对话框窗口也可能有控件的ID值跟它相同
所以,通过控件ID获得控件句柄时,要指定所在的对话框
HWND GetDlgItem(//通过ID 获得句柄
HWND hDlg, //对话框窗口的句柄,ID只是在该对话框窗口唯一
int nIDDlgItem //控件的ID
);

int GetDlgCtrlID(//通过句柄获得ID
HWND hwndCtl //控件句柄
);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式