如何让对话框不消失 在VC6下MFC APPWizard exe 建立了对话框程序,一按OK,或者其他的按键程序就结束了。在InitInstance()函数中加了for(;;){};也没有进入死循环。WHY 我的思路是能不能在对话框上按键,但对话框不结束,继续显示,继续运行。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 处理对话框的PreTranslateMessageBOOL C****Dlg::PreTranslateMessage(MSG* pMsg) { if( pMsg-> message == WM_KEYDOWN ) // 按键处理 { if( pMsg-> wParam == VK_RETURN ) // 回车键处理 { // 屏蔽回车 return TRUE; } } } 双机OK键,在消息响应函数中注释掉 CDialog::OnOK 因为默认情况下,对话框的焦点在“OK”按钮上,所以按下键后,就相当于按了“OK”按钮。按ESC,就相当于按了“Cancel”按钮。1楼的方法就是可以的。 删除新创建的 确定 取消 按钮,然后再去拖CButton控件放好就行了。 一般回车键可以通过重载对话框的OnOK函数处理这个位置处理Esc和空格键 重载PreTranslateMessage OnOk或OnCancel 这几个方法就可以了,具体方法楼上几位都说了。 对话框消失是因为它新创建的那两个按钮实现了CDialog::OnOK;和CDialog::OnCancel(); 还有就是按了键盘的ESC或ENTER,前一种你双击button控件进行删了这两句就行,第二种你就用1楼的方法屏蔽就行了。 处理案件消息在PreTranslateMessage函数里面...可以拦截掉...当然你可以把 enter和esc用做它途...在其他的子控件里面处理...貌似消息反射的存在,所以前面的拦截不影响控件... 个人猜测...达人给个权威一点说法吧.. 你要实现什么功能?试试在OnOK里调用UpdateData() 我要现实这样的功能建立一个对话框程序,要有,确定,撤销,和一个EDIT BOX。把撤销键改为计时器设置SETTIME,按了就开始每三秒ONTIME。EDIT BOX输入数字X,范围100至999。第一位是编号,后两位是时间分钟输入数字按确定后,编号NUM=X/100;TIME1=当时时间,TIME2=TIME1+X-NUM*100,定时时间;ONTIME函数里当系统时间==定时时间TIME2时,在对话框上显示“第NUM号,时间到了”。谢谢诸位,注释掉 CDialog::OnOK好象可以。 [急切求助]如何向QQ聊天窗体粘贴文本,并向"发送"按纽发送单击消息? 关于图像的熵值 切换输入法消息 directsound如何实现播放显示 SendMessage()和PostMessage()的区别? 为何对话框程序中,得不到 WM_KEYDOWN 消息? 很难的消息传递问题,怎样传递 IHTMLDocument2的get_cookie为什么 得到不到cookie 请教一个调试问题?? 如何将CPropertySheet作子窗口 使用DirectDraw开发,出现DirectDrawCreateEx@16,何解??? 请问一台电脑装四个硬盘的话,VC怎么才能获取到全部的序列号呢?
BOOL C****Dlg::PreTranslateMessage(MSG* pMsg)
{
if( pMsg-> message == WM_KEYDOWN )
// 按键处理
{
if( pMsg-> wParam == VK_RETURN )
// 回车键处理
{ // 屏蔽回车
return TRUE; }
}
}
按ESC,就相当于按了“Cancel”按钮。1楼的方法就是可以的。
这个位置处理Esc和空格键
CDialog::OnOK;和CDialog::OnCancel(); 还有就是按了键盘的ESC或ENTER,前一种你双击button控件进行删了这两句就行,第二种你就用1楼的方法屏蔽就行了。
试试在OnOK里调用UpdateData()
把撤销键改为计时器设置SETTIME,按了就开始每三秒ONTIME。EDIT BOX输入数字X,范围100至999。
第一位是编号,后两位是时间分钟输入数字按确定后,编号NUM=X/100;TIME1=当时时间,TIME2=TIME1+X-NUM*100,定时时间;ONTIME函数里
当系统时间==定时时间TIME2时,在对话框上显示“第NUM号,时间到了”。
谢谢诸位,注释掉 CDialog::OnOK好象可以。