エディットボックスの自動折り返し

  • デル株式会社
  • エディットボックスを右端で自動折り返ししたい時

    サンプル

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

    関連記事

    ページ上部へ戻る