いつもお世話になっています。
複数のリッチエディターコントロール(子ウィンドウ)を作成し、それぞれ、背景色と、文字入
力可否を設定しようとしています。
         CrichEditCtrl m_rich[100];
       .......
       .......
	int inmode;  // 文字入力の可否 1ならば 不可
	COLORREF bcol; // 背景色
     int id  // リッチエディターコントロールのインデクス
m_rich[id].SetBackgroundColor(FALSE, bcol);
	if(inmode == 1){
		m_rich[id].EnableWindow(FALSE);
	}
このようにすると、背景色がデフォルトの灰色になってしまいます。設定した背景色のままで、文
字入力ができなくするにはどうすればよいのでしょうか。
また、文字入力不可のコントールは、マウスクリックは認識しなければなりません。
WIN 2000 、 MFC、 VC6++ 環境です。
よろしくお願いいたします。
SetReadOnly()でどうでしょか?
Kerryさん、早速ご返答有難うございます。
SetReadOnly()
で書き込みができなくなりました!!
文字入力アイコン ” | ”が出なくなると良いのですが。
教えていただけますでしょうか。よろしくお願いします。
フォーカスを違うコントロールに当ててみては如何でしょうか?
CWndにHideCaretってなかったでしたっけ
keichanさん、lngさんご返答有難うございます。
カレットの非表示から試してみましたが、カレットが消えないで、点滅しています。
   if(inmode == 1){
 	m_rich[id].HideCaret();
	m_rich[id].SetReadOnly();
   }
よろしくお願いします。
HideCaret後、リッチエディットにテキストを送るとフォーカスが復活するようですが。
事前に書きたいものを入れてからHideCaretしないといけないようですね
でもkeichanさんの仰るようにリッチエディットではないコントロールに
フォーカスを移しておくのが簡単ですかね
たとえばWindowsのファイルやフォルダのプロパティがそんな感じですよ
(場所とかサイズの項目は読み取り専用のCEditになってるのでフォーカスは来ます)

 
  
  
  
  