Hi,

I know how to subclass a RichEdit, and the messages I handle in my procedure work, but I want to know how to call the default procedure that would proccess a non-subclassed RichEdit Control. My problem is that when I subclass it, I want the default Procedure to take care of what my procedure doesn't.

I only handle a context menu and the commands from it, but, I can't use the defaut procedure because I don't know it's name. The RichEdit (RichEdit 3.0) is not doing anything because I can't call the procedure that handles the functionality because I haven't a clue to it's name. The RichEdit doesn't scroll, accept characters, paste, undo, or anything that the default RichEdit procedure should do. How can I go about calling the default procedure?

This is what I have (Not the exact code, just what needs to be seen):
------------------------------------------------------------------------------------------------------------------

// Main Window Procedure
switch(message)
{
case WM_CREATE:
{
// Declare RichEdit: hRichEdit
SetWindowLongPtr(hRichEdit, GWLP_WNDPROC, (LONG_PTR)MyRichEditProc); // This works fine
}
break;
default:
    return DefWindowProc(hwnd, message, wParam, lParam);
// End Message Loop

// MyRichEditProc
switch(message)
{
case WM_RBUTTONDOWN:
// Show ContextMenu, This works fine
break;
default:
   // Here is where I want to call the default RichEdit Procedure, This is where I'm Stuck.
}
// End Proc

;

Can anybody help me out?

First call GetWindowLongPtr to get a pointer to its defaultProc then call CallWindowProc() when appropriate. See the GWLP_WNDPROC option.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.