MFC自动生成的窗口里面的“确定”和“取消”并没有相应的处理函数,但是点击他们却使窗口消失了。

这是怎么回事呢

因为CDialog类(你的Dialog继承的类)本身有对OnOK合OnCancel的处理,所以就关喽..其实一试就可以看出来,你可以双击资源文件中对话框的OK Button,这样就会生成一个OK得响应函数,然后你看这个函数的最下面,就会
送还给CDialog得OnOk处理
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-10-18
响应该两个按钮单击事件的函数是下面两个虚构函数
CXXX::OnOK()
{
}

CXXX::OnCancel()
{
}

MFC自动生成的窗口会自动调用该窗口的这两个过程

你可以重载这两个函数实现自己的单击事件,同样也可以显示调用如上
的两个函数来屏蔽掉按回车键以及"Esc"键。

...并没有相应的处理函数,但是点击他们却使窗口消失了。
因为CDialog类(你的Dialog继承的类)本身有对OnOK合OnCancel的处理,所以就关喽..其实一试就可以看出来,你可以双击资源文件中对话框的OK Button,这样就会生成一个OK得响应函数,然后你看这个函数的最下面,就会 送还给CDialog得OnOk处理

MFC,如何删除对话框程序中那两个默认的“确定”“取消”按钮!
删除掉就行。只注释OnOK和OnCancel的话,按钮还在,只是点击之后没任何反应而已。如果直接打开资源视图在Dialog里把两个按钮delete掉当然是最直接了当的了,呵呵。

MFC如何让点击确定之后不关闭窗口,而是让其退回状态栏
通过添加自定义消息,重写MFC窗口上的关闭按钮事件(SDI, MDI, Dialog)。1、在主窗口的.h文件里的 AFX_MSG 块中说明消息处理函数:afx_msg void myClose();2、在主窗口的cpp文件里 2.1 使用 ON_MESSAGE 宏指令将消息映射到消息处理函数中:BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)...ON_MESSAGE...

MFC中如何去掉CPropertySheet界面下方的按钮?
MFC中CPropertySheet为属性页,页面最下端自动生成的确定、取消、帮助和应用按钮无用,且放置在最下端不太美观,需要将其去掉,笔者在编程过程中采用的方法如下:1.去掉应用按钮。在CPropertySheet的构造函数中添加添加语句:this-m_psh.dwFlags |= PSH_NOAPPLYNOW;作用是去掉应用按钮。2.去掉帮助按钮的操作...

MFC怎样编写“确定”“取消”
用js去写用confirm这个js函数,再配合跳转请求:var r=confirm("提示语");if (r==true){ ...\/\/点确定了 }else{ ...\/\/点取消了 }

...时候调用?我点击编辑框不反应,但是点击取消和确认为什么反映呢_百度...
看名字就是设置焦点的时候触发这个事件函数 WM_SETFOCUS The WM_SETFOCUS message is sent to a window after it has gained the keyboard focus.MSDN中的原话

MFC中 消息映射之后,不能调用相关处理函数
这是因为CMainWnd多半被CView的窗口挡住了,接收不到鼠标左键的点击消息(鼠标消息发给了CView窗口)改用你的CView派生类来接收鼠标消息就行了。

MFC中在窗口点击按钮,打开另一个已画好窗口,并将旧的窗口锁定或关闭。本...
建议楼主看一下 模态对话框和非模态对话框。看完之后就知道怎么弄了。销毁或关闭窗口,新窗口中用DistoryWindow 函数,隐藏窗口用showwindow(false);不可用窗口用enablewindow(false);具体看MSDN。代码就不贴了。。。还是自己看知识点去吧,这样才学的好。

关闭c++MFC的主窗体,先弹出对话框询问“是否要关闭”,点击确定取消按钮...
classwizard重载主框架CMainFrame的WM_CLOSE消息,在响应函数中:if(IDYES==AfxMessageBox("是否关闭?",MB_YESNO)\/\/放在调用基类OnClose()之前即可,语句不要加分号

MFC左键按下函数怎么没有反应(但是点击按键函数有反应)
对于对话框工程,需要重载PreTranslateMessage 这个虚函数 BOOL CMfcdlg2015Dlg::PreTranslateMessage(MSG* pMsg){ \/\/ TODO: Add your specialized code here and\/or call the base class if(pMsg->message == WM_LBUTTONDOWN && pMsg->hwnd == m_hWnd){ MessageBox(_T("应该重载PreTranslate...

相似回答
大家正在搜