如何在单文档程序中实现TAB键功能
来源:互联网 发布:mac qq和pc qq同时登录 编辑:程序博客网 时间:2024/04/27 21:20
如何在单文档程序中实现TAB键功能
目前只想到这种实现方法:
思路是这样:从CEdit类派生一个编辑框类CTabEdit
#pragma once#define UM_CHANGEFOCUS WM_USER+1// CTabEditclass CTabEdit : public CEdit{ DECLARE_DYNAMIC(CTabEdit)public: CTabEdit(); virtual ~CTabEdit();protected: DECLARE_MESSAGE_MAP()public: afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);//对TAB键进行过滤};/**************************************************/void CTabEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags){ // TODO: 在此添加消息处理程序代码和/或调用默认值 if (nChar==0x09) { ::PostMessageA(GetParent()->m_hWnd,UM_CHANGEFOCUS,0,0);//当按下TAB键后给给CView类父窗口发送自定义消息,通知父窗口改变输入焦点 } else CEdit::OnChar(nChar, nRepCnt, nFlags);}
在CView类中头文件中增加若干个CTabEdit对象成员,然后在WM_CREATE消息中创建若干个编辑框
int Clesson4View::OnCreate(LPCREATESTRUCT lpCreateStruct){ if (CView::OnCreate(lpCreateStruct) == -1) return -1; m_edit1.Create(WS_CHILD|WS_BORDER|WS_VISIBLE|ES_LEFT|WS_TABSTOP,CRect(10,30,110,50),this,IDC_VIEW_EDIT1); m_edit2.Create(WS_CHILD|WS_BORDER|WS_VISIBLE|ES_LEFT|WS_TABSTOP,CRect(10,60,110,80),this,IDC_VIEW_EDIT2); m_edit3.Create(WS_CHILD|WS_BORDER|WS_VISIBLE|ES_LEFT|WS_TABSTOP,CRect(10,90,110,110),this,IDC_VIEW_EDIT3); return 0;}
在CView类中响应自定义消息
头文件声明消息响应函数
afx_msg LRESULT OnUMchangeFocus(WPARAM wparam,LPARAM lparam);
源文件中用ON_MESSAGE宏关联,函数实现
ON_MESSAGE(UM_CHANGEFOCUS,&Clesson4View::OnUMchangeFocus)/***********************************/LRESULT Clesson4View::OnUMchangeFocus(WPARAM wparam,LPARAM lparam){ GetNextDlgTabItem(GetFocus())->SetFocus(); return 0;}
0 0
- 如何在单文档程序中实现TAB键功能
- 如何在单文档中实现分割窗口功能
- 如何在vc6.0的单文档和对话框中实现文件拖放功能
- 如何在vc6.0的单文档和对话框中实现文件拖放功能
- 如何在程序中实现PPT,Excle等文档的预览功能~~?
- 如何在Java程序中实现FTP的上传下载功能
- 如何在程序中,实现比大小的功能
- 如何在Web程序中实现定时运行的功能?
- Winform中实现TAB键的功能
- 在单文档MFC程序中实现MSComm控件串口编程
- 在datawindow中实现enter按键的tab功能
- Android小功能:在ListView中实现单选功能
- 怎样在一个单文档程序中添加树形控件
- MFC在单文档程序中添加最近打开文件.
- 在单文档程序中动态切换多个窗体
- 在单文档程序中动态切换多个窗体
- MFC+Opencv在单文档程序中显示出一幅图像
- 如何实现C#中用Enter完成TAB键功能
- lightOJ 1082 - Array Queries 【线段树(求最小值)】
- GreenPlum操作
- hdoj 1420 Prepared for New Acmer 【快速幂】
- 一颗名叫哈夫曼的树
- 1034. Head of a Gang (30)
- 如何在单文档程序中实现TAB键功能
- 翻译作品js
- leetcode之数组指定位置间的数之和
- JavaScript变量命名规则:匈牙利命名法
- 将字符串转化为指定长度的字符串
- Xilinx Vivado & ISE License creating and modification
- 操作系统常考知识总结
- wxpython学习1
- 计算连个日期之间间隔的天数