void CMemoryDlg::OnBnClickedMemory() { // TODO: 在此添加控件通知处理程序代码 //申请内存空间 HWND hWnd; hWnd=::FindWindow(NULL,_T("Test.txt - 记事本")); if(hWnd==NULL) { MessageBoxA(NULL,"没有找到窗口",NULL,NULL); return; } /*DWORD dwProcessID; char* tmepvalue = new char[20]; GetWindowThreadProcessId(hWnd,&dwProcessID); HANDLE hProcess = OpenProcess(PROCESS_VM_READ,FALSE,dwProcessID); ReadProcessMemory(hProcess,(LPCVOID)0x0007109A,&tmepvalue,1,NULL);*/ CString str; HWND EditWnd; EditWnd=::FindWindowEx(hWnd,NULL,_T("EDIT"),NULL); if(EditWnd==NULL) { MessageBox(_T("没有找到子窗口"),NULL,NULL); return; } CWnd *wnd=CWnd::FromHandle(EditWnd); char chs[100]; //::SendMessage(EditWnd,WM_CHAR,(WPARAM)'A',0x00000001);//写入字符。 ::SendMessage(EditWnd,WM_GETTEXT,(WPARAM)999,(LPARAM)chs); str.Format(_T("%s"),chs); MessageBox(str,_T("文本内容"),NULL); } 为什么记事本里Edit控件的句柄调用GetWidnowText()获取不到文本内容,而要使用::SendMessage 发送WM_GetText消息才能获取呢? 有知道的可以在下面留言。