- 2012-10-1
- Visual C++
エディットボックスを右端で自動折り返ししたい時
サンプル
static int CALLBACK EditWordBreakProc( LPTSTR , int , int , int ); BEGIN_MESSAGE_MAP(CTestDlg, CDialog) ON_EN_CHANGE(IDC_EDIT1, &CTestDlg::OnEnChangeEdit1) END_MESSAGE_MAP() //この辺から実装箇所 void CTestDlg::OnEnChangeEdit1() { CEdit * pEdit1 = (CEdit *)GetDlgItem(IDC_EDIT1); ::SendMessage(pEdit1->m_hWnd, EM_SETWORDBREAKPROC, 0, (LPARAM)EditWordBreakProc); } int CALLBACK EditWordBreakProc(LPTSTR lpch, int ichCurrent, int cch, int code) { return (WB_ISDELIMITER == code) ? 0 : ichCurrent; }
Horizontal ScrollがTrueだったり、Auto HScrollがTrueだったりするとCALLBACKが発生しないので注意。