为什么要在构造函数里再次使用m_Process而且还要赋值才不会出错呢class CShiyan3Dlg : public CDialog
{
public: CEdit m_Edit;
DWORD m_ProcessID;
};
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
DWORD pid = 0;
CShiyan3Dlg* dlg = (CShiyan3Dlg*)lParam;
GetWindowThreadProcessId(hwnd, &pid);
if (dlg->m_ProcessID != pid)
return TRUE;
CString text;
text.Format("%08X\r\n", hwnd);
dlg->m_Edit.SetWindowText(text); return FALSE;
}
void CShiyan3Dlg::OnButton1()
{ EnumWindows(EnumWindowsProc, (LPARAM)this);
}
{
public: CEdit m_Edit;
DWORD m_ProcessID;
};
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
DWORD pid = 0;
CShiyan3Dlg* dlg = (CShiyan3Dlg*)lParam;
GetWindowThreadProcessId(hwnd, &pid);
if (dlg->m_ProcessID != pid)
return TRUE;
CString text;
text.Format("%08X\r\n", hwnd);
dlg->m_Edit.SetWindowText(text); return FALSE;
}
void CShiyan3Dlg::OnButton1()
{ EnumWindows(EnumWindowsProc, (LPARAM)this);
}
晕,你不是要在回调函数里面用这个m_ProcessID作为判断条件的吗?在调用回调函数的时候你这个值都没有确定,你认为你的if语句的比较还有意义吗?你没有设置一个值,它和谁比较吗?
http://topic.csdn.net/u/20080511/13/06252129-507c-4317-8cea-8ccaf3083a21.html
http://topic.csdn.net/u/20080511/13/06252129-507c-4317-8cea-8ccaf3083a21.html