首页
社区
课程
招聘
[求助]大大们救命啊,快疯掉了“我的练习题:想做一个简单的查找QQ聊天窗口工具”
发表于: 2008-4-2 11:00 6508

[求助]大大们救命啊,快疯掉了“我的练习题:想做一个简单的查找QQ聊天窗口工具”

2008-4-2 11:00
6508
MFC...
LISTBOX ->ADDSTRING ×

我的练习题:想做一个简单的查找QQ聊天窗口工具

BOOL CALLBACK zltProc(
							  HWND hwnd,      // handle to parent window
							  LPARAM lParam   // application-defined value
							  )
{
	if(hwnd>0)
	{
		char *tt=new char[255];
		CString t;
		GetWindowText(hwnd,tt,MAX_PATH);
		t=tt;
		if (t.Find("交谈中")>0)
		{
           ((CListBox*)GetDlgItem(myhwnd,IDC_LIST1))->AddString(t); //请问大大这个地方怎么把文本加入列表框? 老是出错...myhwnd (是全局变量,OnInitDialog的 m_hWnd)
		}
		return TRUE;
	}
	return FALSE;
}

void findlt()
{
   EnumWindows((WNDENUMPROC)zltProc,0);
}

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (12)
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
大大们快帮帮我...谢谢
2008-4-2 11:34
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
3
void CWnd::GetDlgItem( int nID, HWND* phWnd ) const;
//应该是这样调用吧?
((CListBox*)GetDlgItem(IDC_LIST1,myhwnd))->AddString(t);
2008-4-2 11:36
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
小虾班班....还是弄不好...出错ing...
2008-4-2 11:52
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
5
什么错误?不过估计错误的原因应该是GetDlgItem函数不是调用到CWnd::的GetDlgItem函数,而是调用了WinAPI的GetDlgItem的函数。WinAPI的GetDlgItem不能用类方法来调用(没有怎样用MFC写程序,所以也不太清楚应该如何正确的调用MFC类的CWnd::GetDlgItem函数)。
2008-4-2 12:05
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
...什么错误提示也没...就是运行不起来...一运行就是遇到问题需要关闭。我们对此引起的不便表示抱歉。
2008-4-2 12:47
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
Compiling...
QQtestDlg.cpp
Linking...
Creating browse info file...

QQtest.exe - 0 error(s), 0 warning(s)

然后运行就是 出错的那个错误报告 程序遇到问题需要关闭的那个...
2008-4-2 12:48
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
8
那就没错了,你调用的是WinAPI的GetDlgItem,而不是CWnd类的GetDlgItem成员函数。出现了读取非法内存错误了。
2008-4-2 13:19
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
9
将你的MFC代码改成SDK吧。
HWND hList = GetDlgItem(myhwnd,IDC_LIST1);
SendMessage(hList,LB_ADDSTRING,0,(LPARAM)tt);
2008-4-2 13:26
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
BOOL CALLBACK zltProc(
							  HWND hwnd,      // handle to parent window
							  LPARAM lParam   // application-defined value
							  )
{
	if(hwnd>0)
	{
		char *tt=new char[255];
		CString t;
		GetWindowText(hwnd,tt,MAX_PATH);
		t=tt;
		if (t.Find("交谈中")>0)
		{
		
			char *test=new char[255];
			HWND hlist=GetDlgItem(myhwnd,IDC_LIST1);
            sprintf(test,"%d",hlist);
			MessageBox(0,test,NULL,NULL); //句柄取到了
			MessageBox(0,tt,NULL,NULL);   //内容正确了
			SendMessage(hlist,LB_ADDSTRING,0,(LPARAM)tt);  //这里加不进去了...:(

			//((CListBox*)GetDlgItem(myhwnd,IDC_LIST1))->AddString(t);
		}
		return TRUE;
	}
	return FALSE;
}

void findlt()
{
   EnumWindows((WNDENUMPROC)zltProc,0);
}


小虾班班 怎么加不进去~~~郁闷...
2008-4-2 13:48
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
谢谢小虾班班的热情帮助,使我这只小菜菜更进一步.您实在太好勒...

班班的代码绝对OK  只是偶疏忽了列表框的属性
2008-4-2 14:09
0
雪    币: 1505
能力值: (RANK:210 )
在线值:
发帖
回帖
粉丝
12
我记得看雪精华里面有关于这个的帖子 好像是:消息群发器 吧
2008-4-2 18:18
0
雪    币: 208
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
谢谢bithaha大大  偶去找找,,,
2008-4-3 07:32
0
游客
登录 | 注册 方可回帖
返回