社区
界面
帖子详情
请问导致AfxMessageBox消息窗口不能操作的原因有哪些
焚月的守护者
2015-05-30 12:52:08
重写了CHtmlView类,进行网页内容显示,然后在单击添加书签按钮之后,想要弹出一个窗口提示添加成功,但是使用AfxMessageBox弹出的窗口,除了鼠标拖动,不能响应确定和关闭Message窗口操作,就像下面图片显示的一样。
小窗口可以拖动,但是不能关闭,请问这个问题可能产生的原因有哪些,该如何解决?
...全文
346
7
打赏
收藏
请问导致AfxMessageBox消息窗口不能操作的原因有哪些
重写了CHtmlView类,进行网页内容显示,然后在单击添加书签按钮之后,想要弹出一个窗口提示添加成功,但是使用AfxMessageBox弹出的窗口,除了鼠标拖动,不能响应确定和关闭Message窗口操作,就像下面图片显示的一样。 小窗口可以拖动,但是不能关闭,请问这个问题可能产生的原因有哪些,该如何解决?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
焚月的守护者
2015-11-02
打赏
举报
回复
这几天又碰到类似的问题,重新翻了一遍,解决方法是:nNcActivate函数直接修改返回TRUE,窗口不会闪烁,弹窗也可以关闭。 BOOL CMainFrame::OnNcActivate(BOOL bActive) { return TRUE; }
焚月的守护者
2015-06-02
打赏
举报
回复
回复 VisualEleven ,按下Enter也不能关闭。 谢谢大家,问题的原因找到了:我在窗口类中重写了OnNcActivate函数,当时为了解决重画边框的问题,将函数直接返回了,并没有调用父类的函数。 BOOL CMainFrame::OnNcActivate(BOOL bActive) { return bActive; } 现在改成return CWnd::OnNcActivate(bActive);就可以用了。 不过还是有一个问题,改成上面那句之后,窗口被遮挡再出现时会被刷上白色背景,很难看
Eleven
2015-06-01
打赏
举报
回复
你的意思是AfxMessageBox点击不能关闭,但是可以拖动?按个Enter键呢?能关闭不?
oyljerry
2015-06-01
打赏
举报
回复
AfxMessageBox本来就会阻塞当前窗口。如果你不需要,应该用非模态对话框,自己做一个
赵4老师
2015-06-01
打赏
举报
回复
使用TRACE调试。
焚月的守护者
2015-05-31
打赏
举报
回复
引用 1 楼 worldy 的回复:
代码发出来大家瞧一下
不好意思,看晚了。 代码比较多,而且很分散,不好贴出来看,下面是弹出窗口那一段的代码: 前两个函数是用来添加书签的, LRESULT CMainFrame::OnAddToBookMarket(WPARAM wParam, LPARAM lParam) { // 获取当前网址信息 HtmlHistory htmlHis(CTabPageManager::GetInstance()->GetFocusHtmlCtrl()->GetUrlTitle(), CTabPageManager::GetInstance()->GetFocusHtmlCtrl()->GetLocationURL()); CHtmlDoc::GetInstance()->PushBookMarketBack(htmlHis); //AfxMessageBox(_T("书签添加成功")); return 0; }
worldy
2015-05-30
打赏
举报
回复
代码发出来大家瞧一下
Afx
MessageBox
造成程序“卡死”的问题
今天写程序的时候遇到了
Afx
MessageBox
造成程序“卡死”的“”“问题”,花了大半天才搞明白怎么回事。 网上百度,有些说法是多线程
不能
用
Afx
MessageBox
,线程里面用
Afx
MessageBox
的确有问题,我程序虽然跑了几个线程,但是出错的地方并不在线程里面。。。后来实在找不到什么
原因
,才突然想到是不是
Afx
MessageBox
显示在主
窗口
后面了?
Afx
MessageBox
是模态对话框,不关掉程序就像卡死了一样。然后就猜是不是主
窗口
一直在更新显示? 最后定位到了主
窗口
一个显示控件的OnPaint
由
MessageBox
和
Afx
MessageBox
的使用异同所感
我记得刚开始学图形界面编程的时候,接触的最早的一个函数应该就是
MessageBox
,之前都一直是控制台程序,突然能运行蹦出一个对话框感觉还是很新鲜的。当时还利用
MessageBox
写一些恶搞程序,利用上面的yes or no 按钮进行判断等等。但是说实话感觉用处不是特别大,调试的时候可能会用到,所以也就没有深入的研究和学习这个函数。后来转到MFC了,不知怎的吧,就用起了
Afx
MessageBox
,也
MFC测试Windows
消息
处理机制、阻塞试验、SetTimer、
MessageBox
、
消息
响应处理函数
VC6标准WIN32程序,Windows
消息
处理机制: 1.在注册
窗口
类时,指定了
消息
处理函数WndProc()。 2.WinMain()里有
消息
循环: while (GetMessage(&msg, NULL, 0, 0)) { if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); ...
用户登录成功后才进入主
窗口
进行其他
操作
应用前景:面对一个应用程序,用户只有输入正确的用户名和密码后,才能进入主
窗口
进行其他的
操作
;否则,提示登录失败,重新输入。 开发环境:Windows XP + VC6.0 新建一个基于MFC的单文档应用程序(项目名:delme),默认就行,。。。直到Finish。编译运行,就可以有一个
窗口
出来了,这个
窗口
作为主
窗口
。 现在要做一个登录
窗口
,它将在主
窗口
显示出来前跳出来提示用户登录。
指定
MessageBox
所属父
窗口
(使用
Afx
GetMainWnd())
参考:MSDN 在一些情况里:例如 回掉函数 中,我们可能不知道所属的父
窗口
: int
MessageBox
( HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType ); 当hWnd使用NULL的时候:If this parameter is NULL, the message box h
界面
15,979
社区成员
115,896
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章