如何获取mfc的窗口消息处理函数???

mirroatl187 2014-06-23 05:01:04
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...全文
235 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2014-06-23
  • 打赏
  • 举报
回复

LRESULT CALLBACK EDProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam)
{// get oldproc
	WNDPROC OldEdProc=(WNDPROC)GetProp(hWnd,"EditOldProc");	
	char buf[100]= {0};
	switch(Msg)
    {
	case WM_NOTIFY:
//		OutputDebugString("notify\n");
		break;
	case WM_KEYUP:
//		OutputDebugString("WM_KEYUP\n");
		break;
	case WM_CHAR:
		if((TCHAR) wParam==VK_RETURN)
		{
			CallWindowProc(OldEdProc, hWnd, Msg, wParam, lParam);
			POINT pt;
			DWORD pos;
			int idx;
			// insert the indent 
			GetCaretPos(&pt);
			pos=SendMessage(hWnd,EM_CHARFROMPOS,0,MAKELPARAM(pt.x, pt.y));
			idx=LOWORD(pos);
			SendMessage(hWnd,EM_SETSEL,idx,idx);
			SendMessage(hWnd,EM_REPLACESEL,0,(LPARAM)"    ");
			return 0;
		}
		break;
#if 0
	case WM_PAINT:
		hdc=BeginPaint(hWnd,&ps);
// WS_BORDER 
		Rectangle(hdc,ps.rcPaint.left,ps.rcPaint.top,ps.rcPaint.right,ps.rcPaint.bottom);
// ES_MULTILINE	
		lines=SendMessage(hWnd,EM_GETLINECOUNT,0,0);
		for(jj=0;jj<lines;jj++)
		{// use GetWindowText will lost CR
			got=SendMessage(hWnd,EM_GETLINE,jj,(LPARAM)txt);
			txt[got]=0;
			if(jj==1)
			{
				SetTextColor(hdc,RGB(255,0,0));
				TextOut(hdc,2,2 + jj*16,txt,got);
			}
			else
			{
				SetTextColor(hdc,RGB(0,0,0));
				TextOut(hdc,2,2 + jj*16,txt,got);
			}
		}
		EndPaint(hWnd,&ps);
		return 0;
#endif
	}
	return CallWindowProc(OldEdProc, hWnd, Msg, wParam, lParam);
} 
schlafenhamster 2014-06-23
  • 打赏
  • 举报
回复
下面是一个edit 的子类化: m_hEdit=CreateEdit(hwnd); WNDPROC EdOldProc = (WNDPROC)SetWindowLong(m_hEdit, GWL_WNDPROC, (LONG)EDProc); SetProp(m_hEdit,// handle of window "EditOldProc", // atom or address of string EdOldProc);//
fishion 2014-06-23
  • 打赏
  • 举报
回复
DWL_DLGPROC也看看
zwfgdlc 2014-06-23
  • 打赏
  • 举报
回复
GetWindowLong(hwnd, GWL_WNDPROC)

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧