基于对话框MFC应用程序的问题
我用VS .NET 2003 的向导生成一个简单的基于对话框的应用程序。并且打对话框上的两个按钮删掉,只剩下一个空的对话框。其他什么都不修改,然后就编译执行,但如果在对话框上按回车或ESC键程序就结束执行。
1、请问怎样才能让程序在按这两个键时不结束执行呢?
2、怎样才能改变单个EDIT控件的字体大小呢?
问题点数:20、回复次数:8Top
1 楼MapleInHG()回复于 2005-09-07 15:40:26 得分 5
在MFC4.2的情况下,重写对话框类的PretranslateMessage函数,在里面截获回车及ESC。
第二个问题,自己从CEdit类派生吧,然后设字体。Top
2 楼phoenix96_2000(Arcrest)回复于 2005-09-07 15:44:38 得分 7
1
BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->message == WM_KEYDOWN && (pMsg->wParam==VK_RETURN || pMsg->wParam == VK_ESCAPE) )
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}
或者重载OnOK,OnCancel也行Top
3 楼phoenix96_2000(Arcrest)回复于 2005-09-07 15:50:13 得分 8
2.
在你对话框中增加一个CFont的成员m_font;
在OnInitDialog里面初始化:
LOGFONT lf;
memset(&lf,0,sizeof(lf));
lstrcpy(lf.lfFaceName,"Ms Sans Serif");
lf.lfWeight = FW_REGULAR;
m_font.CreateFontIndirect(&lf);
GetDlgItem(IDC_EDIT1)->SetFont(&m_font);
Top
4 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-09-07 20:09:03 得分 0
PreTranslateMessage拦截一下好了Top
5 楼wang921718(从aquatic到computer)回复于 2005-09-07 20:56:25 得分 0
行吧!Top
6 楼ss3295(阳光)回复于 2005-09-07 22:22:54 得分 0
看看Top
7 楼Stefine(CSDN最菜滴猩猩)回复于 2005-09-07 22:50:17 得分 0
按的回车就是执行OnOK()这个函数,上面的仁兄都说了两种可行的方法
第二个问题向楼上的学习ingTop
8 楼jmmail()回复于 2005-09-09 13:18:55 得分 0
谢谢各位的指导!Top




