as title
============================
============================
解决方案 »
- 菜鸟求助关于share和static链接库的问题
- 自己写了一个DeskBand,却和MSDN例子里面的表现不一样
- 操作SQL数据库出了问题,急等解决,各位老大帮我
- 【-*!国庆!*-】祝大家国庆快乐^_^ 要是每年国庆都阅兵多好^_^
- _T函数有什么用?
- 有没有vc生成一个word文档的实例?
- 函数定义非法
- VARIANT and VARIANTARG 在什么时候用呢?
- if (pUpdateData[1] & (1 << PLC_W2_BIT_SKQJTS )) {}
- 请各位大侠帮助,怎样改变树控件的节点选择状态?
- vc6转换到vc7时的问题
- 如何不用visualstudio的资源编辑器制作模式对话框?
TAB键是普通字符。
我的意思就是平常我们可以用tab键跳向下一个按钮或者文本输入框,
那么系统是根据什么来判断应该跳转了,根据什么来判断该跳转到哪里?
要不然系统如何识别呢?
TAB跟别的键盘不同,跟ALT一样,有着自己特定的功能啊
如果你重载 PreTranslateMessage(MSG* pMsg) 不调用
return CDialog::PreTranslateMessage(pMsg);就可以自己处理了。用CDialog::PrevDlgCtrl 和 CDialog::NextDlgCtrl 可以按设置的
tab order 移动焦点。
1)IDC_BUTTON2
2)IDOK
3)IDC_BUTTON1
////////////////////////////////////
..................
IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 121
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "关于 GetEmail"
FONT 9, "宋体"
BEGIN
PUSHBUTTON "Button2",IDC_BUTTON2,161,67,67,26
DEFPUSHBUTTON "确定",IDOK,182,4,46,16,WS_GROUP
PUSHBUTTON "Button1",IDC_BUTTON1,166,34,62,19
.......
////////////////////////////////////
你可以自己试一试 :D
在Dialog设计窗体中按下Ctrl+D更改顺序,然后再Ctrl+D退出,Ctrl+S保存后,用Notepad.exe打开对应.rc文件。
你会发现这种改变。
ie,explore等好多windows相关的对象对Tab按下都有相应的自己的响应,这些都是通过按下Tab实现的,
那么现在的问题是,如果我不通过键盘,只想单纯通过给系统发送消息或事件,使得当前窗口响应
跟按下Tab一样的动作,无论是对话框也好,打开的网页也好,该如何实现呢?翻了下msdn,找到的关于Tab Control的资料都是预备文档,极度郁闷中····
我想这样,程序执行后,首先激活另一窗口(对话框也好,什么都成)
然后通过间断时间向系统发送消息,使得被激活窗口上的button,edit box等等
按照窗口tab order的顺序依次聚焦,就像在键盘上按Tab键的效果一样。
可以实现嘛?
然后根据键值分别处理
很遗憾,但我想知道的就是如何分别处理的
SendMessage ( ) 向其发WM_KEYDOWN 消息,好象可以把Tab键的虚码给当作一个参数给传过去.
keybd_event(VK_TAB,0,WM_KEYDOWN,0);
来模仿发送Tab键
用SendMessage会有窗口句柄的问题,你很难控制的。