Solved

Locking out CTRL-C on an MFC OCX wrapped rich edit control.

Posted on 2004-04-23
4
509 Views
Last Modified: 2013-11-20
I have written an OCX in MSV C++ Ver 6.00.  This control wraps a standard rich edit control.  My base class is cOleControl.

I want to disable the CTRL-C copy function so that information cannot be easily copied. The control is also read-only.  I have tried numerous Onxxxx methods to dectect a character of  ASCII 3 (ctrl-c) and not call the base class in this case.  I also did a check on the message pump function and did not pass the message along if it was a WM_CHAR with a character of 3.  I'm not that familiar with MFC, so I think I am lost.  Does the MFC object receive windows event first or last?  Any ideas on how to lock out ctrl-c in my case?

Thanks
0
Comment
Question by:rmichels
  • 2
4 Comments
 
LVL 86

Assisted Solution

by:jkr
jkr earned 125 total points
Comment Utility
You should try to handle and suppress WM_COPY.
0
 
LVL 3

Author Comment

by:rmichels
Comment Utility
I tried numerous ways to suppress WM_COPY.  What is the best way to capture the message?   Who gets the message first..MFC or the control I have created within my OCX.

Thanks
0
 
LVL 4

Accepted Solution

by:
r2far earned 125 total points
Comment Utility
PreTranslateMessage() function recieves all events before they are dispatched to child controls and windows.


Here is an example.

BOOL CPEntry::PreTranslateMessage(MSG *pMsg)
{
   if( pMsg->hwnd==*this )
   {
      if( pMsg->message == WM_COPY )
      {
         // return TRUE says the message has been handled.
         return TRUE;
      }
   }

   return CMaskEntry::PreTranslateMessage(pMsg);
}



Hope this helps =)
0
 
LVL 3

Author Comment

by:rmichels
Comment Utility
I accepted both of your answers and split the points as they put me on the right track..but...apparently an RTF control does not generate a WM_COPY.  The standard edit control does.  As I have this control read only and don't care about keyboard input I handled WM_CHAR, WM_KEYDOWN and WM_KEYUP in the pretranslate message function.

0

Featured Post

Enabling OSINT in Activity Based Intelligence

Activity based intelligence (ABI) requires access to all available sources of data. Recorded Future allows analysts to observe structured data on the open, deep, and dark web.

Join & Write a Comment

Suggested Solutions

Title # Comments Views Activity
Need Help INsttalling wget on Mavericks OS X 3 81
Expand macro to ask for filename column 8 34
sum28 challenge 31 95
Making an alias 7 51
Introduction: Ownerdraw of the grid button.  A singleton class implentation and usage. Continuing from the fifth article about sudoku.   Open the project in visual studio. Go to the class view – CGridButton should be visible as a class.  R…
If you use Adobe Reader X it is possible you can't open OLE PDF documents in the standard. The reason is the 'save box mode' in adobe reader X. Many people think the protected Mode of adobe reader x is only to stop the write access. But this fe…
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
Excel styles will make formatting consistent and let you apply and change formatting faster. In this tutorial, you'll learn how to use Excel's built-in styles, how to modify styles, and how to create your own. You'll also learn how to use your custo…

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

16 Experts available now in Live!

Get 1:1 Help Now