俺是初学者 请您尽量用朴实的语言哦 :)DWORD dwProcessID;//你的进程号CString        g_cStrText;VOID GetWindowHandle(CMy1Dlg *pThis) 

    g_cStrText = "";
    EnumWindows( EnumWindowsProc, (LPARAM)NULL); 
    pThis->SetDlgItemText(IDC_EDIT1, g_cStrText);
}static BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam) 

    DWORD pid = 0;     // 取得窗口的进程号 
    if (!GetWindowThreadProcessId( hwnd, &pid )) 
    { 
        return TRUE; // 继续玫举 
    }    // 查找窗口在任务列表中的对应项 
    if(dwProcessID == pid) 
    {
        CString        cStrTmp;
        cStrTmp.Format("HWND: %08X\r\n", hwnd);
        g_cStrText += cStrTmp;
    }    return TRUE; //继续玫举 
} void CMy1Dlg::OnButton1() 

    GetWindowHandle(this); 

class CMy1Dlg : public CDialog
{
// ...
public:
    CEdit m_Edit;
    DWORD m_ProcessID;
};BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
    CMy1Dlg* dlg = (CMy1Dlg*)lParam;
    DWORD pid = 0;
    GetWindowThreadProcessId(hwnd, &pid);
    if (dlg->m_ProcessID != pid)
        return TRUE;
    CString text;
    text.Format("%08X", hwnd);
    dlg->m_Edit.SetWindowText(text);
    return FALSE;
}void CMy1Dlg::OnButton1() 
{
    EnumWindows(EnumWindowsProc, (LPARAM)this);
}

解决方案 »

  1.   

    声明中,类有成员函数,比如类有实例a那么this就是指向a的指针不同的类实例,this代表本实例的指针
      

  2.   

    this就是“这个”、“自己”,在类里面就是指向对象实例自身的指针。
      

  3.   

    this就是日常生活中的“我的”
    this->手就是“我的手”
    如果你说“我的手”这句话,那就是指你自己的手
    如果是你朋友也说“我的手”这句话,虽然都是“我”,但这个“我”是指你的朋友
      

  4.   

    比如你想在一个继承的类中看他有什么成员。就可以输入this->
      

  5.   

    只要明白一点就行了,this就是代表当前对象的指针。
      

  6.   

    首先this指针一般是dword类型大小的变量,也就是4个bytes。里面存储的是地址,该地址就是你的对象存储的地址。比如:
    有一个类:
    class A
    {
    int i;
    virtual Add();
    int Get();
    };
    A a;对象,假设有一个A * pA = &a;这里对象a是存储在栈上的,在地址0x12345678处,那就是说pA里面的值=0x12345678,而我们可能会对a中的变量i进行操作,比如付值pA->i = 20;其实操作就可能是根据pA指针取得值0x12345678,然后可能通过偏移量4来取得i的地址,然后付值20,这里之所以有偏移4,是由于类里面有虚函数,其头4个字节应该是个保存虚函数表的指针,如果要更好的明白,可以看看类的对象的内存布局方面的资料。当然,如果这里有另一个对象A aa;存储在0x87654321,那里pA里面的值=0x87654321,以次类推