首页
社区
课程
招聘
[求助]为什么子类化了RichEdit,就不再产生WM_CHAR消息了?
发表于: 2008-5-16 11:30 5721

[求助]为什么子类化了RichEdit,就不再产生WM_CHAR消息了?

2008-5-16 11:30
5721
因为我在RichEdit中添加右键菜单,所以用SetWindowLong子类化了一下
但,这样之后就无法再输入任何字符,即不再产生WM_CHAR消息
我在OD中设消息断点也断不下来
只要把SetWindowLong注释掉,一切都又正常了…………

代码如下:
	switch(message)
	{
	case	WM_INITDIALOG:
		hChildWnd = hDlg;
		hWinEdit = GetDlgItem(hDlg, IDC_RICHEDIT);
		hOldWndProc = SetWindowLong(hWinEdit, GWL_WNDPROC, (long)RichEditWndProc);	;子类化
		return 1;


回调函数:
LRESULT CALLBACK RichEditWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	POINT	pt = {0};
	if (uMsg == WM_RBUTTONDOWN)
	{
		::GetCursorPos(&pt);
		::TrackPopupMenu(hChildPopMenu, TPM_RIGHTBUTTON, pt.x, pt.y, 0, hChildWnd, NULL);
                               return 1;
	}
	else
	{
		return ::CallWindowProc((WNDPROC)hOldWndProc, hWnd, uMsg, wParam, lParam);
	}
	
}


这样就可以了,因为返回值的问题~~~

[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 1946
活跃值: (243)
能力值: (RANK:330 )
在线值:
发帖
回帖
粉丝
2
RichEdit和Edit是有区别的,vckbase上有资料。
2008-5-16 13:36
0
游客
登录 | 注册 方可回帖
返回
//