rt。
没有用MFC。使用了WndProcess,怎么让edit不能粘贴呢?
焦点进入edit中,就拦截不到WM_RBUTTONUP了
------解决思路----------------------
子类化 这个 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);
、、
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_KEYDOWN:
OutputDebugString("WM_KEYDOWN\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;
}
return CallWindowProc(OldEdProc, hWnd, Msg, wParam, lParam);
}
------解决思路----------------------
HWND CreateEdit(HWND parentWnd)
{
HWND hEd=0;
hEd = CreateWindow("EDIT",
NULL,
WS_CHILD
------解决思路----------------------
WS_TABSTOP
------解决思路----------------------
WS_VISIBLE
------解决思路----------------------
WS_BORDER
------解决思路----------------------
WS_VSCROLL
------解决思路----------------------
WS_HSCROLL
------解决思路----------------------
ES_AUTOVSCROLL
------解决思路----------------------
ES_AUTOHSCROLL
------解决思路----------------------
ES_MULTILINE
------解决思路----------------------
ES_WANTRETURN,
4, 250, 300, 80,
parentWnd, (HMENU)IDC_EDIT,
(HINSTANCE) GetWindowLong(parentWnd, GWL_HINSTANCE),
NULL);
SetWindowText(hEd," An Edit with ES_MULTILINE and ES_WANTRETURN style!");
//
return hEd;
}
------解决思路----------------------
提醒:粘贴还可以用Shift+Ins