简单问题高手们请进...参与者有分! 请问:我开发的是SDI程序,当我按x按钮时如何来控制程序的是否退出?也就是说我按下它的时候我能扑获它的消息由我自己来控制是否退出程序!我截获了WM_DESTROY消息但是不好用执不执行它下面的代码都不起作用我在视图的虚函数WindowProc中。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该处理WM_SYSCOMMAND消息,窗口控制菜单(左上角的图标菜单,包括有上角的按钮)所有的命令都包含在这个消息中。 void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam) { // TODO: Add your message handler code here and/or call default if((nID &0Xfff0)==SC_CLOSE) { AfxMessageBox("dddddddddd"); } CFrameWnd::OnSysCommand(nID, lParam);} 老是来晚;休息一下午;用楼上说的;SC_CLOSE是窗口右上角的X(关闭) 或者你用if (GetMessage()==WM_CLOSE){ ...............} BOOL bRet;while( (bRet = GetMessage( WM_CLOSE, NULL, 0, 0 )) != 0){ if (bRet == -1) { // handle the error and possibly exit } else { TranslateMessage(&msg); DispatchMessage(&msg); }} 刚才试了一下好象在CLASSVIEW里面在CMainFrame上点右键用ADD WINDOWS MESSAGE HANDLER映射一下CMainFrame的WM_CLOSE消息就可以了,在CMainFrame::OnClose()函数里加自己东西OK了 刚才试了一下好象在CLASSVIEW里面在CMainFrame上点右键用ADD WINDOWS MESSAGE HANDLER映射一下CMainFrame的WM_CLOSE消息就可以了,在CMainFrame::OnClose()函数里加自己东西OK了ok ok ok 大家好,我忆申请这个号很长时间了不过不知道怎么发新帖子,请指教。我有一问题:#include <afxwin.h>class My:public CFrameWnd{public: afx_msg void OnPaint() {CPaintDCpaintDC(this); paintDC.TextOut(0,0,"这是我的第一个窗口"); } DECLARE_MESSAGE_MAP()};BEGIN_MESSAGE_MAP(My,DFrameWnd)ON_WM_PAINT()END_MESSAGE_MAP()class Hello:public CWinApp{ public: Hello():CWinApp("Hello World!") {} BOOL InitInstance() { CFrameWnd *My=new My; m_pMainWnd=My; My->Create (NULL,(LPCTSTR)"Hello"); My->ShowWindow (SW_SHWO); return TRUE; }} HelloWorld; 总是在最后一行出错,不是代码问题,这是我从书上抄下来的,我不知道错在哪儿。请给出错误原因和解决方法。谢谢!并发信至:[email protected]因为我不知道怎么进这个论坛,下次不一定能找到这个帖子。 mfc遍历注册表 如何判断一个程序是从桌面快捷方式启动的? 请问,装了电信的宽带和数字电视,请问,数字电视如何接到笔记本上看 新手求教 我用了boost,再用了另一个自定义控件,就编译出错了。后来我还是用标准控件,不知各位大虾能否解决? 在 release 方式下,map文件有用吗? 刚刚学vc++,请大家指导。散分,谢谢大家。Up有分! 一个奇怪的问题:一个应用程序。。。 如何在别人的程序中画图? 如何在对话框中绘图 请问如何用SendMessage()向指定的窗口发送键盘消息Ctrl+A, Ctrl+C, etc.? 急,Com组件中的_ConnectionPtr关闭出错?
{
// TODO: Add your message handler code here and/or call default
if((nID &0Xfff0)==SC_CLOSE)
{
AfxMessageBox("dddddddddd");
}
CFrameWnd::OnSysCommand(nID, lParam);
}
if (GetMessage()==WM_CLOSE)
{
...............
}
{
if (bRet == -1)
{
// handle the error and possibly exit
}
else
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
ok ok ok
我有一问题:
#include <afxwin.h>
class My:public CFrameWnd
{public:
afx_msg void OnPaint()
{CPaintDCpaintDC(this);
paintDC.TextOut(0,0,"这是我的第一个窗口");
}
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(My,DFrameWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()
class Hello:public CWinApp
{ public:
Hello():CWinApp("Hello World!")
{}
BOOL InitInstance()
{ CFrameWnd *My=new My;
m_pMainWnd=My;
My->Create (NULL,(LPCTSTR)"Hello");
My->ShowWindow (SW_SHWO);
return TRUE;
}
} HelloWorld;
总是在最后一行出错,不是代码问题,这是我从书上抄下来的,我不知道错在哪儿。请给出错误原因和解决方法。谢谢!
并发信至:[email protected]
因为我不知道怎么进这个论坛,下次不一定能找到这个帖子。