让程序响应组合键(c++builder&c#)
来源:互联网 发布:c#连接sqlserver数据库 编辑:程序博客网 时间:2024/06/10 23:32
- c++builder中让FORM响应组合键:
- 1.首先要设置form的keypreview==true,
- 如果一个Form上有Edit、Memo。它们都有OnKeyPress事件,那么当Form的KeyPreview=true 你按键时程序优先响应Form的OnKeyPress事件。WM_KEYDOWN,WM_KEYUP消息是先发送到主窗口的,如果主窗口没有响应,那么控件(也就是子窗口)才响应。
- 你可以做个实验。
- void fastcall Form1::Form1KeyPress(TObject *Sender,DWORD &key……)
- {
- if(Key ==VK_RETURN)
- ShowMessage("Form1KeyPress");
- }
- void fastcall Form1::Edit1KeyPress(TObject *Sender,DWORD &key……)
- {
- if(Key ==VK_RETURN)
- ShowMessage("Edit1KeyPress");
- }
- 然后分别把Form的KeyPreview设为true和false,然后将光标移动到Edit1,按回车键。看看结果有什么不同。
- 2.然后设定form的KeyPress(),KeyDown()等事件;
- 下面判断是否按下了Shift+Q;
- void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
- TShiftState Shift)
- {
- if(Key=='Q'&&Shift.Contains(ssShift))
- {
- ShowMessage("shit +q");
- }
- }
- c#中实现的方法是一样的;
- 如下:
- 需要将form的KeyPreview设true
- private void Form1_Load(object sender, System.EventArgs e)
- {
- this.KeyPreview=true;
- }
- private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
- {
- if((e.Alt)&&(e.KeyCode==System.Windows.Forms.Keys.S))
- {
- MessageBox.Show("");
- }
- }
如上就轻松搞定了。
- 让程序响应组合键(c++builder&c#)
- c++builder让程序最大化最小化的代码
- 让 C++builder 或 delphi 程序 获取管理员权限
- ACE 演练: 让程序响应ctrl+c信号
- 转载:c++builder多线程程序
- c++builder让MessageBox窗口置顶
- 如何让生成的程序以管理员身份运行(C++builder 2010)
- c++builder
- C++Builder
- C++BUILDER
- C++Builder
- C++BUILDER
- c++builder中添加和响应自定义消息
- C++Builder如何响应消息及自定义消息
- 用 C++Builder 编写 Tray 程序
- C++Builder 程序只运行一个实例
- 在Borland C++Builder中检查程序
- C++builder 編寫的關閉顯示器程序
- 【转】宁做创业狼,不做打工狗(ZT)
- Delphi 常用函数
- 程序员必备的职业素养
- 开博语录
- Browser Helper Objects: The Browser the Way You Want It
- 让程序响应组合键(c++builder&c#)
- RoundButton Windows Control - Ever Decreasing Circles
- [转贴] 修练8年C++面向对象程序设计之体会
- 专家访谈:ExtJS技术优化界面的利器
- 程序员六大职业素养
- Samba安装
- 传谷歌美女副总裁梅耶尔将于09年离职
- 开始学习...
- c3p0连接池和hibernate应用