已知控件句柄及id,如何取得该控件的指针,父窗口的hwnd也知道 hWnd:控件句柄CWnd *pWnd;pWnd->Attach(hWnd); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 HWND GetDlgItem( HWND hDlg, // handle of dialog box int nIDDlgItem // identifier of control); 我也想知道可如果没有ID怎么办,如何取得句柄?那个nIDDlgItem如何确定? 象yajunmao(oldcat) 那样得到控件的句柄不就可以对它进行操作了吗。GetDlgCtrlID 可以通过控件的句柄 得 控件ID 可是 ID 和HANDLE都不知道的情况,我就不知道了,看看一会会不会有那位神人来指点一二! 我刚才用SPY试了一下! 可以得到控件的句柄! 也就是说能用GetDlgCtrlID 在反过来去求 ID还没有试过! 比较懒哈哈!!一会去看球! 那位大虾试成了告诉我一下。 如果ID和HANDLE都不知道,那只好从该控件的父窗口着手了,也就是说从父窗口对子窗口进行轮循,如果有必要的话,可以判断子窗口的类型是否为你想查询的控件类,如果是你想要的控件,自窗口查询函数返回值即为它的ID和HANDLE。下面的函数就是查询主创体是否为OICQ,并可进行进一步处理的BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam){ HWND Hwnd=hwnd;//窗口的句柄 CWnd *pWnd; char WindowText[255]; CString CS_Text; pWnd=CWnd::FromHandle(Hwnd); pWnd->GetWindowText(WindowText,255); CS_Text=WindowText; CS_Text.MakeUpper(); if(CS_Text=="OICQ用户登录") LogOrReg=LOGON;//1 else if(CS_Text=="OICQ 注册向导") LogOrReg=REG;//0 else return TRUE; int result=EnumChildWindows( Hwnd, // handle to parent window &EnumChildProc, // pointer to callback function NULL); return FALSE;}BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam)//查询子窗体函数{........}这个EnumChildProc函数对应每一个子窗口都会被调用一次的。 不好意思,有一点错误,子窗口的参数hwnd为子控件的句柄 SetDlgItemText()方法中,控件ID怎么写成变量 windows下如何拦截流经本网卡的数据包并进行端口转发? MFC前台界面未响应 各位过路者,帮个忙吧 问个菜鸟的问题 CreateEvent的意思? 郁闷,CString不能释放缓冲内存。 初学者的问题 vc2012下的线程自定义消息 高分在线求救!怎样让我的应用程序先于windows桌面启动? 句柄handel的意义与用法?? 这两个问题难住了我,请求指点? 如何在程序里面关闭"我的电脑"
HWND hDlg, // handle of dialog box
int nIDDlgItem // identifier of control
);
可如果没有ID怎么办,如何取得句柄?
那个nIDDlgItem如何确定?
还没有试过! 比较懒哈哈!!一会去看球! 那位大虾试成了告诉我一下。
下面的函数就是查询主创体是否为OICQ,并可进行进一步处理的
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
HWND Hwnd=hwnd;//窗口的句柄
CWnd *pWnd;
char WindowText[255];
CString CS_Text;
pWnd=CWnd::FromHandle(Hwnd);
pWnd->GetWindowText(WindowText,255);
CS_Text=WindowText;
CS_Text.MakeUpper();
if(CS_Text=="OICQ用户登录")
LogOrReg=LOGON;//1
else if(CS_Text=="OICQ 注册向导")
LogOrReg=REG;//0
else
return TRUE;
int result=EnumChildWindows(
Hwnd, // handle to parent window
&EnumChildProc, // pointer to callback function
NULL);
return FALSE;
}
BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam)//查询子窗体函数{
....
....}
这个EnumChildProc函数对应每一个子窗口都会被调用一次的。