使用向导创建的 CEdit m_wndEdit;然后我在对话框中添加 WM_CREATE  消息  ,想通过
m_wndEdit.Create(WS_CHILD|WS_VISIBLE|
                 WS_VSCROLL|ES_MULTILINE|ES_AUTOVSCROLL,
                 CRect(0, 0, 0, 0), this, IDC_PENDINGREQUEST);
修改 编辑框的属性是编辑框能够换行 , 结果
原本在按钮函数void CPengdingRequest::OnButton1() 
{
// TODO: Add your control notification handler code here
m_wndEdit.SetWindowText(_T("ddddddddddddddddddddddddddAAAAAAAAAAAAAAAAAAAAAAQQQQQQQQQQQQQQWWWWWWWWWWWWWWWWEEEEEEEEEEEEEEEE"));}
能够显示在编辑框,但是在OnCreate函数添加m_wndEdit.Create以后,这个控件就不显示了。----------
我的问题是 使用向导创建的CEdit 变量 向导是在那里初始化的? 书上的说是在 WM_CREATE消息时创建了控件,但是我不添加这个消息代码中都没有啊还要一个问题就是 如何修改 已经生成 的CEdit 控件的属性。让他支持自动换行
ES_MULTILINE 属性。

解决方案 »

  1.   

    你使用向导创建了一个就不要再动态的创建了,对话框上如果放置了这个控件就直接右键点击该控件进行属性设置就可以啊,如果是动态的用如下的函数m_wndEdit.ModifyStyleEx(0L, ES_MULTILINE),就可以了。
      

  2.   

    “使用向导创建的CEdit 变量 的初始化”是在你使用向导创建CEdit 变量 m_wndEdit之前你就在controls工具栏上把Edit控件拖到对话框上去了,这个时候VC已经自动为你初始化好了。你再用
    m_wndEdit.Create(); 就是错误的。你如果想用Create()来动态创建CEdit控件就不要在controls工具栏上把Edit控件拖到对话框上去了,也不用向导,直接在你的程序里这样子来创建:
    CEdit m_wndEdit;
    m_wndEdit.Create(WS_CHILD|WS_VISIBLE|
                     WS_VSCROLL|ES_MULTILINE|ES_AUTOVSCROLL,
                     CRect(0, 0, 0, 0), this, IDC_PENDINGREQUEST);
    Create()函数的原型如下:BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );
    第二个参数rect用来指定Edit控件的大小和位置。一般不会是CRect(0,0,0,0),像你这样子创建出来的控件它的大小是0你说能看的到吗?
         
      

  3.   

    至于自动换行你可以在对话框编辑栏中右击这个控件-》属性(或者直接按回车),
    打开属性页,点Styles标签,然后把Multiline、Vertical Scroll、Want Return等打上勾就可以了。