MFC中如何用代码设置文本控件为ReadOnly? rt,thx! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 LZ想要的是代码实现的吧.非代码实现的就是楼上所说的.但是颜色会变灰色,比较的不爽.代码实现的就要重载消息处理的方法了.控件样子不会变.选择类视图,然后点取dlg类,右键添加vitual function. 然后在里面找到PreTranslateMessage() 然后生成并书写 下面列代码就OK了 .BOOL CMy3321Dlg::PreTranslateMessage(MSG* pMsg) { CWnd * pedit= GetDlgItem(IDC_EDIT1); //获得编辑框控件的指针 if(GetFocus()==pedit) //如果编辑框获得焦点的话 就进行处理 { pedit->SetWindowText("haha");//方法并 不影响正常的内部赋值 this->SetFocus(); //如果讨厌编辑框那个光标的话 //就让对话框主体获得.这样下面的代码也就不必 了,如果没这句,下面代码还是要的.//如果消息是按键的话,直接返回. if ((pMsg->message==WM_KEYDOWN||pMsg->message==WM_KEYUP)) { return true; } } return CDialog::PreTranslateMessage(pMsg);} GetDlgItem(IDC_EDIT1)->EnableWindow(FALSE);CWnd::EnableWindow CWnd * pWnd;pWnd = GetDlgItem(IDC_EDIT1);pWnd->EnableWindow(FALSE); 恩..GetDlgItem(IDC_EDIT1)->EnableWindow(false);也可以..颜色是背景色. 用EnableWindow(false)不行,太丑了,变灰色。emptyness(问题事小,结帐事大~) 的方法看上去是正解,但是我右键点了之后只有添加->添加函数,然后出现一个对话框,里面并不能找到PreTranslateMessage()来添加为什么?咋办? 是添加虚函数不是成员函数, ADD Virtual Function ...not member function.然后在左边的列表里就可以找到的.然后中间的列表就会显示是否加上了.双击中间列表已经加上的函数名 就会自动跳转到代码处 就可以开始填写了.. 哦,我找到了,是你的口误吧,你说选择类视图,然后点取dlg类,右键添加vitual function. 然后在里面找到PreTranslateMessage()其实是在属性里面的重写消息响应函数那里找到这个函数的。我这么做了,可是居然无效!跟没有加之前完全一样,怎么办呢? 上QQ..32242132住明 CSDN..不信了...在这里说的太累了., VC++建立一个窗口,但是总是创建失败,窗口不显示,运行不报错 vc使用kodak控件的问题??? vc排错~ SDK中 ListView_SortItems使用问题! 关于异常处理的编译设置问题 为什么会退出呢? 想用CScrollView滚动图形要做哪些工作 政府采用红旗Linux,windows程序员有何感想?(放100分,大家讨论) 请问哪个网站有AVI文件的源代码 联想品牌机显卡的Direct 3D无法用,救命啊。。。 在子线程的 中,给主线程发消息 怎么实现?? 怎么实现CSliderCtrl的位置变化时向外触发消息
非代码实现的就是楼上所说的.但是颜色会变灰色,比较的不爽.代码实现的就要重载消息处理的方法了.控件样子不会变.
选择类视图,然后点取dlg类,右键添加vitual function. 然后在里面找到
PreTranslateMessage() 然后生成并书写 下面列代码就OK了 .BOOL CMy3321Dlg::PreTranslateMessage(MSG* pMsg)
{
CWnd * pedit= GetDlgItem(IDC_EDIT1); //获得编辑框控件的指针
if(GetFocus()==pedit) //如果编辑框获得焦点的话 就进行处理
{
pedit->SetWindowText("haha");//方法并 不影响正常的内部赋值
this->SetFocus(); //如果讨厌编辑框那个光标的话
//就让对话框主体获得.这样下面的代码也就不必 了,如果没这句,下面代码还是要的.//如果消息是按键的话,直接返回.
if ((pMsg->message==WM_KEYDOWN||pMsg->message==WM_KEYUP))
{
return true;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
CWnd::EnableWindow
CWnd * pWnd;pWnd = GetDlgItem(IDC_EDIT1);
pWnd->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT1)->EnableWindow(false);
也可以..颜色是背景色.
emptyness(问题事小,结帐事大~) 的方法看上去是正解,但是我右键点了之后只有添加->添加函数,然后出现一个对话框,里面并不能找到
PreTranslateMessage()来添加为什么?咋办?
ADD Virtual Function ...not member function.
然后在左边的列表里就可以找到的.然后中间的列表就会显示是否加上了.双击中间列表已经加上的函数名 就会自动跳转到代码处 就可以开始填写了..
选择类视图,然后点取dlg类,右键添加vitual function. 然后在里面找到
PreTranslateMessage()
其实是在属性里面的重写消息响应函数那里找到这个函数的。我这么做了,可是居然无效!跟没有加之前完全一样,怎么办呢?
32242132
住明 CSDN..
不信了...在这里说的太累了.,