⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 read.cgi-read=10068.htm

📁 mfc资料集合5
💻 HTM
字号:
<HTML><HEAD><TITLE>RichEditCtrl and protected chars</TITLE>
</HEAD><BODY background="../fancyhome/back.gif" tppabs="http://www.codeguru.com/fancyhome/back.gif" bgcolor="#FFFFFF">
 <table WIDTH="100%"> <tr WIDTH="100%"> <td><table>
		<tr><td><img src="../mfc_sourcebook.jpg" tppabs="http://www.codeguru.com/mfc_sourcebook.jpg" 
		ALT="MFC Programmer's SourceBook" WIDTH="256" 
		HEIGHT="88"><td></tr>
		<tr><td valign="bottom"><font SIZE="+1" 
		color="#a0a0ff"><b>Discussion Board</b></font></td></tr>
		</table></td> <td width="40"></td>
		<td  align="right" valign="top"><td> </tr> </table> <hr><P ALIGN=CENTER>[ <A HREF="#Responses">Read Responses</A> | <A HREF="#PostResponse">Post a New Response</A> | <A HREF="index.cgi.htm" tppabs="http://www.codeguru.com/mfc_bbs/index.cgi">Return to the Index</A> ]
<P ALIGN=CENTER><BIG><BIG><BIG><STRONG>RichEditCtrl and protected chars</STRONG></BIG></BIG></BIG>
<P ALIGN=CENTER><EM>Posted by <STRONG><A HREF="mailto:fpetitje@bureauveritas.com">F. Petitjean</A></STRONG> on <STRONG>4/22/98 5:51a.m.</STRONG></EM></P>
<!-- REMOTE_HOST: 57.192.211.35; REMOTE_ADDR: 57.192.211.35-->
<P>environment VC++5.0 winNT SP3
<P>In a SDI application, the user can select an item in a ListBox and he is presented a command template in a CrichEditView derived window. I fill in the content of the RichEditCtrl with StreamIn() function and it works as expected.
<P>Next, I have added following functionnality : all characters that are displayed bold are marked with the protected attributes. (They represent keywords and should not be modified so that the sentence can be parsed and interpreted). The OnProtected() handler is called if I try to modify a protected part (right) but also (bad) from the StreamIn() function even though I have tried to reset the contents with :
<BR>if ( GetRichEditCtrl().GetTextLength() &gt; 0 )
<BR>{
<BR>GetRichEditCtrl().SetWindowText( &quot;&quot; );
<BR>DeleteContents();
<BR>}
<P>How to say to the RichEditCtrl that I want to start with a new fresh content ?(and don't worry with protected chars). I don't want to reparse the old content just to get rid of the protected attributes.
<P>Here is the Onprotected management code :
<BR>void CCmd1View::OnInitialUpdate() 
<BR>{
<BR>	CRichEditView::OnInitialUpdate();
<BR>	
<BR>	// TODO: Add your specialized code here and/or call the base class
<BR>	long	eventmask = GetRichEditCtrl().GetEventMask() | ENM_PROTECTED ;
<BR>	GetRichEditCtrl().SetEventMask( eventmask );
<BR>	
<BR>}
<P>void CCmd1View::OnProtected( NMHDR * pNMHDR , LRESULT * pResult )
<BR>{
<BR>	ENPROTECTED * pENPROTECTED = (ENPROTECTED *) pNMHDR;
<P>	CHARFORMAT	cf ;
<BR>	cf.cbSize = sizeof( CHARFORMAT );
<BR>	DWORD	dwMask_c = GetRichEditCtrl().GetSelectionCharFormat( cf );
<P>	if ( ( (cf.dwMask &amp; CFM_BOLD) == CFM_BOLD ) &amp;&amp; ( (cf.dwEffects &amp; CFE_PROTECTED) == CFE_PROTECTED ) )
<BR>	{
<BR>		(void) ::MessageBeep( MB_ICONEXCLAMATION );
<BR>		*pResult = TRUE ;	//	ne pas modifier!
<BR>		*pResult = 0L ;	//	tentative le 22 avril 1998 pour faire fonctionner browsing cdes
<BR>	}
<BR>	else
<BR>		*pResult = 0L ;
<BR>}
<P>(Note: if I enforce the protection mechanism (*pResult = TRUE; ) the rich edit control refuse to change its content ).
<P>Thanks in advance.
</P>
<A NAME="Responses"><HR></A><P ALIGN=CENTER><BIG><BIG><STRONG>Responses</STRONG></BIG></BIG>
<P><UL>(No responses to this message have been posted.)</UL></P>
<A NAME="PostResponse"><HR></A><P ALIGN=CENTER><BIG><BIG><STRONG>Post a New Response</STRONG></BIG></BIG>
<P><FORM METHOD=POST ACTION="http://www.codeguru.com/mfc_bbs/index.cgi?post">
<INPUT TYPE=HIDDEN NAME="followup" VALUE="10068">
<P><CENTER><TABLE><TR>
<TD ALIGN=RIGHT><P><STRONG>Your Name:</STRONG></TD><TD><INPUT TYPE=TEXT NAME="name" SIZE=40></TD></TR><TR>
<TD ALIGN=RIGHT><P><STRONG>E-Mail Address:</STRONG></TD><TD><INPUT TYPE=TEXT NAME="email" SIZE=40></TD></TR><TR>
<TD ALIGN=RIGHT><P><STRONG>Subject:</STRONG></TD><TD><INPUT TYPE=TEXT NAME="subject" SIZE=40 VALUE="Re: RichEditCtrl and protected chars"></TD></TR><TR>
<TD COLSPAN=2 ALIGN=CENTER><P><STRONG>Message:</STRONG><BR><TEXTAREA COLS=80 ROWS=15 NAME="body" WRAP=PHYSICAL>
</TEXTAREA></TD></TR><TR>
<TD COLSPAN=2 ALIGN=CENTER><HR WIDTH=50%><P><SMALL>If you'd like to include a link to another page with your message,<BR>please provide both the URL address and the title of the page:</SMALL></TD></TR><TR>
<TD ALIGN=RIGHT><P><STRONG>Optional Link URL:</STRONG></TD><TD><INPUT TYPE=TEXT NAME="url" SIZE=40 VALUE="http://"></TD></TR><TR>
<TD ALIGN=RIGHT><P><STRONG>Optional Link Title:</STRONG></TD><TD><INPUT TYPE=TEXT NAME="url_title" SIZE=40></TD></TR><TR>
<TD COLSPAN=2 ALIGN=CENTER><HR WIDTH=50%><P><SMALL>If you'd like to include an image (picture) with your message,<BR>please provide the URL address of the image file:</SMALL></TD></TR><TR>
<TD ALIGN=RIGHT><P><STRONG>Optional Image URL:</STRONG></TD><TD><INPUT TYPE=TEXT NAME="imageurl" SIZE=40 VALUE="http://"></TD></TR><TR>
<TD COLSPAN=2 ALIGN=CENTER><HR WIDTH=50%><P><SMALL>If you'd like e-mail notification of responses, please check this box:</SMALL> <INPUT TYPE=CHECKBOX NAME="wantnotice" CHECKED VALUE="yes"></TD></TR><TR>
<TH COLSPAN=2><HR WIDTH=50%><P><INPUT TYPE=SUBMIT NAME="Preview" VALUE="Preview Message"> <INPUT TYPE=SUBMIT NAME="Post" VALUE="Post Message"></TH></TR></TABLE></CENTER></P></FORM>
<HR><P ALIGN=CENTER><SMALL>The MFC Discussion Board is maintained with <STRONG><A HREF="http://awsd.com/scripts/webbbs/">WebBBS 2.24</A></STRONG>.</SMALL></P>
</BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -