- 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が発生しないので注意。







