ホーム » 2011 » 2月 » 24

日別アーカイブ: 2011/02/24

2011年2月
 12345
6789101112
13141516171819
20212223242526
2728  

カテゴリー

アーカイブ

ブログ統計情報

  • 77,354 アクセス



CRichEditCtrl の使用

ダイアログでCRichEditCtrlを使用する場合,InitInstanceなど,ダイアログ表示前にAfxInitRichEdit を呼び出す必要あり(これがないとダイアログが表示されない)
http://msdn.microsoft.com/ja-jp/library/76a787xf(VS.80).aspx
BOOL CXxxxApp::InitInstance()
{
 AfxEnableControlContainer();
 AfxInitRichEdit() ;
 …
 }

VC7 以降は AfxInitRichEdit2
http://msdn.microsoft.com/ja-jp/library/tt1cfb9f(v=VS.80).aspx

WinCtrl4.cpp より
BOOL PASCAL AfxInitRichEdit()
{
  _AFX_RICHEDIT_STATE* pState = _afxRichEditState;
  if (pState->m_hInstRichEdit == NULL)
  pState->m_hInstRichEdit = AfxCtxLoadLibraryW(L”RICHED32.DLL“);
  return pState->m_hInstRichEdit != NULL;
  }
BOOL PASCAL AfxInitRichEdit2()
{
  _AFX_RICHEDIT_STATE* pState = _afxRichEditState;
  if (pState->m_hInstRichEdit2 == NULL)
  pState->m_hInstRichEdit2 = AfxCtxLoadLibraryW(L”RICHED20.DLL“);
  return pState->m_hInstRichEdit2 != NULL;
  }
 
RC 内のコントロールのクラス名 RichEdit20A , RichEdit20W
http://support.microsoft.com/kb/261171
 
VC6 UNICODE exe で,CRichEditCtrl から DDX で文字列を取得すると正しく取れない.
例えば”㎡㎥m” が “㎡?m” になってしまう.
 RC のクラス名を “RICHEDIT” から “RichEdit20W” に変更して正しく取れる様になった.
CRichEditCtrl の使い方  RichEdit20W
 ”RichEdit20A” では,変わらず.
CRichEditCtrl の使い方  RichEdit20A
 
選択項目の変更の通知にはEN_SEL_CHANGEなど
これを使用する場合,OnInitDialogなどで,以下の様な呼び出しでの設定が必要.
 long       em = m_CtrlRichEdit.GetEventMask() ;
 m_CtrlRichEdit.SetEventMask(em|ENM_SELCHANGE) ;
 http://msdn.microsoft.com/ja-jp/library/bb774366.aspx
 
以下の様な方法で,FaceNameを使用可能
 CHARFORMAT  cf ;
 ::ZeroMemory(&cf,sizeof(CHARFORMAT)) ;
 cf.cbSize = sizeof(CHARFORMAT) ;
 m_CtrlRichEdit.GetSelectionCharFormat(cf) ;
 …  = cf.szFaceName ;

保存
 http://msdn.microsoft.com/ja-jp/library/b0k0ywek(v=VS.80).aspx
 

Is this 投稿 useful? Useful Useless 0 of 0 people say this 投稿 is useful.