我想把用EDIT类创建的窗口修改成以下模样:1.可以拦截WM_CHAR消息并决定是否亲自处理。
2.放倒编辑框的光标,就是让它变成横的(像DOS那样)。
3.把右键菜单改成想要的并亲自处理菜单事件。
或者说自己画一个编辑框会来得容易些?(我不会)
恳请各位相助解决,谢谢!

解决方案 »

  1.   

    SDK版就不能改窗口过程么?subclass一下就行了啊
      

  2.   

    // 替换窗口处理程序
    SetWindowLong(hWnd, GWL_WNDPROC, (LONG)YourWndProc);// 窗口处理程序
    LONG CALLBACK YourWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
    {
        switch(uMsg) {
        case WM_CHAR:
            // handle
            break;    case WM_CONTEXTMENU: // 右键菜单
            // handle
            break;    default:
            break;
        };
        return CallWindowProc(oldProc, hWnd, uMsg, wParam, lParam);
    }
      

  3.   

    放倒光标,你需要用 CreateCaret、ShowCaret、HideCaret、DestoryCaret 这些 API 函数来处理。