TrackPopupMenu的问题 在我的一个窗口上做了一个菜单,TrackPopupMenu后,我希望过几秒如果没有操作,就在SetTimer里把菜单销毁了,怎么把这个TrackPopupMenu的菜单销毁了? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一般不这样用,希望这样做的都是针对窗口.因为菜单点一下别处或ESC自然会销毁.实在想使用时间来销毁,这样做试试1) 重载PreTranslateMessage(), 监视键盘鼠标消息, 并记录到一个Timer能访问的变量中2) SetTimer(), 在这个函数中查看1)中设置的变量,若没有动作,则销毁菜单. 我是要问如何实现销毁菜单的这个动作?用DeleteMenu,菜单窗口没有消失! DestroyMenu也不行啊,那窗口还在 窗口还在?你到底是要销毁什么?销毁菜单就用DestroyMenu,检查一下菜单句柄对不对 DestroyMenu后菜单窗口也就没了么?句柄正确也执行了,就是那窗口没有消失 先SetMenu(NULL, hMenu)再DestroyMenu试试。如果不行话就发鼠标点击消息来模拟鼠标点击。 //定时销毁和定时不显示可是两回事,DestroyMenu他的作用是你创建一个弹出按钮之后(比如右键弹出菜单),对他的操作结束后你需要用这个函销毁他,下次右键再重新创建弹出,//如果你本次创建完了不销毁,你下次再右键弹出就会出错. 这个当然满足不了楼主的要求.你可以考虑设计一个BOOL变量来调用m_menu.TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);//改变最后一个参数的值,最后一个参数为NULL的时候就不会显示,this会显示.我没有试过,你可以去试试 在时钟消息里模拟一个esc键消息keybd_event(VK_ESCAPE, 0, 0, 0);keybd_event(VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0); 试了下 还真不行 弹出菜单不消失 都无法响应timer函数 也无法模拟按键 我测试了可以啊我用的MFC单文档 vc如何实现在编辑框中输入时替换它原有的字符串。。。 求助:再问Cedit打印。。。 怎样给修改EXE文件的界面,增加新的功能? 让一个radiobutton选中需要发送什么消息? 简单问题,在线等...关于控件 怎样绘制整个屏幕并且不会被擦除? sdk的问题,怎么知道鼠标点击了窗口的最小化按钮? 现在学什么最好?前20个回答的有分分分分 分!! 有关于ComBoBOX的问题!! 请问:如何实现对多个远距离串行设备集中通讯管理? 关闭保存文件对话框出错 内存DC背景色的问题
实在想使用时间来销毁,这样做试试
1) 重载PreTranslateMessage(), 监视键盘鼠标消息, 并记录到一个Timer能访问的变量中
2) SetTimer(), 在这个函数中查看1)中设置的变量,若没有动作,则销毁菜单.
窗口还在?你到底是要销毁什么?销毁菜单就用DestroyMenu,检查一下菜单句柄对不对
句柄正确也执行了,就是那窗口没有消失
先SetMenu(NULL, hMenu)再DestroyMenu试试。如果不行话就发鼠标点击消息来模拟鼠标点击。
//如果你本次创建完了不销毁,你下次再右键弹出就会出错. 这个当然满足不了楼主的要求.你可以考虑设计一个BOOL变量来调用m_menu.TrackPopupMenu(TPM_LEFTALIGN, point.x, point.y, this);
//改变最后一个参数的值,最后一个参数为NULL的时候就不会显示,this会显示.我没有试过,你可以去试试
keybd_event(VK_ESCAPE, 0, 0, 0);
keybd_event(VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0);
可以啊
我用的MFC单文档