怎样在对话框上做一个“应用”按钮
2011-08-30 17:39
176 查看
描述:
当用户打开对话框的时候“应用”按钮处于不可用状态(变灰);
当用户点击了对话框中的某个控件的时候让其处于可用状态;
当用户点击了“应用”按钮后让其变灰;
1.定义两个消息:
消息映射
当用户打开对话框的时候“应用”按钮处于不可用状态(变灰);
当用户点击了对话框中的某个控件的时候让其处于可用状态;
当用户点击了“应用”按钮后让其变灰;
1.定义两个消息:
#define WM_APPLY_TRUE WM_USER + 10 // 使应用按钮处于可用状态 #define WM_APPLY_FALSE WM_USER + 11 // 使应用按钮处于不可用状态(变灰)2.在Main对话框中实现这两个消息:
消息映射
MESSAGE_HANDLER(WM_APPLY_TRUE, OnApplyTrue) MESSAGE_HANDLER(WM_APPLY_FALSE, OnApplyFalse)消息响应
LRESULT OnApplyTrue(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { m_applyBtn.EnableWindow(TRUE); return 0; } LRESULT OnApplyFalse(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& /*bHandled*/) { m_applyBtn.EnableWindow(FALSE); return 0; }3.在Main对话框中捕获全局消息:
virtual BOOL PreTranslateMessage(MSG* pMsg) { // 恢复应用按钮处于可用状态 if (pMsg->message == WM_LBUTTONDOWN) { HWND pageWnd = WindowFromPoint(pMsg->pt); int ctrlID = ::GetDlgCtrlID(pageWnd); if ((::GetParent(pageWnd) != m_hWnd) && ctrlID) { SendMessage(m_hWnd, WM_APPLY_TRUE, 0, 0); } } return CWindow::IsDialogMessage(pMsg); }我用的是WTL, 不过基本方法是一致的。
相关文章推荐
- 怎样在对话框上做一个“应用”按钮
- VC中怎样点击按钮弹出一个对话框
- asp.net中按钮的后台点击事件怎样才能打开一个对话框?(ext中的window)
- 怎样从 WebSphere Business Integration Server Foundation 向 WebSphere Process Server 移植一个端到端的应用
- VS2013MFC对话框工程学习笔记三 - 添加一个MFC类库的按钮响应事件
- WPF Control Hints - ListBox : 怎样在一个ListBoxItem上应用命名Style
- 怎样使点击DBNavigator的Delete按钮时显示中文对话框
- 如果你需要对对话框上的一个按钮进行鼠标停靠提示
- 实现一个带按钮和事件机制的对话框。
- 事件2:点击一个按钮,弹出一个对话框
- 新手求教android的checkBox问题,现在我想实现按一个按钮,弹出一个对话框,这个对话框有标题,两列多行的checkBox以及最后的确定取消按钮,咋做?
- VC++中怎样把一个对话框最小化到任务栏
- Android: 创建一个AlertDialog对话框,必须按确定或取消按钮才能关闭对话框,禁止按[返回键]或[搜索键]关闭
- SpreadButton,想拥有一个应用内的AssistiveTouch(助手按钮)吗
- 在删除数据库记录前弹出一个对话框,和确认按钮和取消按钮
- VC6对话框中,如何实现点击一个按钮,在相应的Edit框里,显示当前时间
- VS2013MFC对话框工程学习笔记四 - 为按钮添加一个响应事件二
- 事件3:点击一个按钮,弹出一个对话框
- 怎样在一个web应用中加入域认证
- 如何在JSP页面中通过一个按钮,在对话框中选择一个目录而不是选择一个文件;input type=file只能选择一个文件,我想选择一个目录;做不出来项目经理要扣奖金的...............