none
关于EDIT CONTROL控件继承 RRS feed

  • 问题

  • <br/>
    <br/>
    class
    
     MyEditControl:public
    
     CEdit
    {
    
           public
    
    :
    	BOOL PreTranslateMessage(MSG* pMsg)
    	{
    	       BOOL bDone=FALSE;
    
    
    	       switch
    
    (pMsg->message){
    	                  case
    
     WM_KEYDOWN :
    	                      bDone=KeyDownProcess(pMsg);
    	                      break
    
    ;
    	                  default
    
    :
    	                      ;
    	               };
    
    	               return
    
     bDone;
    	}// end of PreTranslateMessage
    
    
    
     
    
    	BOOL KeyDownProcess (MSG* pMsg)
    	{
    
    		LPWSTR keyName= new
    
     wchar_t
    
    [16];
    		GetKeyNameText(pMsg->lParam,keyName,16);
    		this
    
    ->SetWindowTextW(keyName);
    	}
    
    }; 
    
    - -我为了让EDITCONTROL控件在我按下CTRL时,文本框里显示CTRL,enter时显示ENTER ,而继承那个CEdit,加点自己的东西进去,见上面代码框

    但是我应该如何把这个MyEditControl跟某个EDIT CONTROL控件(比如IDC_EDIT2),关联起来?
    或者说怎样让这个MyEditControl能显示出EDIT CONTROL那样的TEXTBOX= =?

    搜了一下午都无解,只好来这问了

    PS:C#转MFC真是痛苦
    2010年2月4日 8:27

答案

  • PreTranslateMessage不需要用这个。
    直接重载OnKeyDown然后截获按键后显示,其他不需要截获的调用CEdit::OnKeyDown(...)处理
    0xBAADF00D
    • 已标记为答案 Nancy Shao 2010年2月16日 2:23
    2010年2月6日 12:03
    版主

全部回复

  • 在你的Dialog 设计视图, 鼠标选中Edit 控件。 鼠标右键点击Add variable 在弹出的Wizard 中添加Control Variable, 变量类型为MyEditControl
    2010年2月4日 12:34
    版主
  • PreTranslateMessage不需要用这个。
    直接重载OnKeyDown然后截获按键后显示,其他不需要截获的调用CEdit::OnKeyDown(...)处理
    0xBAADF00D
    • 已标记为答案 Nancy Shao 2010年2月16日 2:23
    2010年2月6日 12:03
    版主