Win32API程序中自建按钮

Windows系统给程序员提供了很多API(Application Program Interface),程序员可以直接利用这些接口,而不用管Windows底层怎么实现的。

Windows中,所用的控件都可以说是窗体,比如说按钮,文本框等,所不同的只是风格而已。

Windows编程中,直接利用API函数创建一个窗体后,可以自己建一个按钮,然后自定义消息,这样就可以响应自己的函数了。这里要讲的是关于自建按钮后响应函数操作时关于键盘焦点的设置。众所周知,Windows是一个基于窗体的系统,那么屏幕上那么多窗体,键盘应该响应哪一个窗体呢,这里就涉及到焦点问题,键盘的焦点设置成那个窗体,就响应那个窗体消息。一般来说,键盘的焦点是根据鼠标来设置,鼠标点击到那个窗体,同时键盘的焦点就设置成了该窗体。所以,在Windows编程中,自建的窗体上自建按钮时,在响应按钮事件后,应该用API函数 HWND SetFocus( HWND hWnd ) 把焦点设成父窗体,这样键盘才能响应父窗体事件。

时间: 2024-10-11 05:13:56

Win32API程序中自建按钮的相关文章

在插件式应用程序中,实现对菜单,工具栏按钮的 完全解耦及状态控制

之前承诺会对 Winform IDE,WPF 客服程序的开发进行进一步的分解记录,很抱歉一直没有太多时间认真梳理. 本篇博客抽取了这两个应用程序的一个共通功能的实现方法进行说明,即在插件式应用程序中,对菜单及工具栏的控制. 对于复杂的应用程序开发,我们可能会将程序的功能进行分解,模块化,插件化:那么如何在应用程序的宿主中,向插件提供统一的菜单,工具栏注册,更新,销毁机制呢?以及如何做到UI无关的彻底解耦合? 看两个例子: 基于 Winform 的插件式应用程序: http://www.cnblo

在DevExpress程序中使用GridView直接录入数据的时候,增加列表选择的功能

在我上篇随笔<在DevExpress程序中使用Winform分页控件直接录入数据并保存>中介绍了在GridView以及在其封装的分页控件上做数据的直接录入的处理,介绍情况下数据的保存和校验等操作,不过还没有涉及到数据列表选择的这种方式,而这种在项目应用也是比较广泛的一种输入方式.本篇随笔继续探讨在GridView上直接录入数据,并增加字典选择列表的功能. 1.GridView直接录入数据回顾 在之前整合的数据录入案例里面,我们可以看到可以在列表里面直接录入速度的便捷性,如下所示. 1)直接在G

【翻译】在Ext JS 5应用程序中如何使用路由

原文:How to Use Routing in Your Ext JS 5 Apps 简介 Ext JS 5是一个重要的发布版本,它提供了许多新特性来创建丰富的.企业级的Web应用程序.MVVM和双向数据绑定为开发人员承担了大量的繁重工作.在Ext JS 5种,另一个新特性就是路由,它可以在控制器内轻松的管理历史记录.前进和后退按钮是每个浏览器都会拥有的公共用户接口,现在,使用Ext JS 5在单页面应用程序中处理导航变得相当简单了. Ext JS 5路由 在Ext JS,已经可以使用Ext.

Halcon的HWindowControl控件在WinForm程序中的使用介绍(重点解决图片缩放的问题)

 Halcon的HWindowControl控件在WinForm程序中的使用介绍(重点解决图片缩放的问题) 2016-12-04 20:11 362人阅读 评论(4) 收藏 举报  分类: Halcon 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] HWindowControl控件初步使用 最近在学习新的视觉处理工具–Halcon软件包,本人学习的主要是HDevelop.Halcon与C#混编以及Halcon与C++混编.这里再多缀一句:11版本后C++编程,包含的是h

利用vs2010制作C语言 dll文件,并在其它程序中调用该dll文件

一.为什么需要dll 代码复用是提高软件开发 效率的重要途径.一般而言,只要某部分代码具有通用性,就可将它构造成相对独立的功能模块并在之后的项目中重复使用.比较常见的例子是各种应用程序框架, 如ATL.MFC等,它们都以源代码的形式发布.由于这种复用是“源码级别”的,源代码完全暴露给了程序员,因而称之为“白盒复用”.“白盒复用”的缺点 比较多,总结起来有4点. 暴露了源代码: 容易与程序员的“普通”代码发生命名冲突: 多份拷贝,造成存储浪费: 更新功能模块比较困难. 实际上,以上4点概括起来就是

VS2010的MFC对话框程序中添加菜单栏的过程

VS2010的MFC对话框程序中添加菜单栏的过程 最近在看一个用MFC写的界面的项目的代码,在代码和界面中一直没有看到关于菜单控件是如何添加进对话框的,于是就百度了下.结果,与其它控件(Button等)添加的方式不一样: VS2010的MFC对话框程序中添加菜单栏的过程大致分了这五步. 一.将Menu加入Resource视图中 在WorkSpace中的Resource视图下,在左边目录的任意位置上,先右键-->选择Insert Resource(插入资源)选项,在弹出的对话框中选择Menu以后,

iOS开发中如何保存按钮的状态

在iOS开发中我们经常会需要保存某个按钮的状态,比如很多设置选项中的UISwitch按钮的开关,比如一些按钮的选中与否等等,今天项目中有一个需求是要保存自动登录按钮的选中状态,想要实现这个功能,可以用归档来完成. 首先需求图: 我需要记录自动登录按钮的状态,若用户选择了下次自动登录,那么程序退出再次启动这个按钮仍然是选中状态. 首先,我们需要监听按钮的点击事件,因为在点击事件里面我们能够拿到按钮的状态. 通过下面代码,存储选中状态. - (IBAction)autologinClick:(UIB

在MFC对话框程序中使用加速键

新建一个基于对话框的工程,添加一个按钮,修改按钮ID,这里为ID_BTN_OPENFILE,为按钮添加消息响应事件,这里我打开文件保存对话框: void CAccelDlg::OnBtnOpenfile() { // TODO: Add your control notification handler code here CFileDialog dlg (TRUE); dlg.DoModal (); } 为工程添加一个加速键资源,添加一条,注意ID要和按钮的ID相同,只有这样才能产生关联 为主

在打包程序中自动安装SQL Server数据库 .

原文:在打包程序中自动安装SQL Server数据库 . 1.创建安装项目“Setup1”安装项目 在“文件”菜单上指向“添加项目”,然后选择“新建项目”. 在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格中的“安装项目”.在“名称”框中键入 “setup1”. 单击“确定”关闭对话框. 项目被添加到解决方案资源管理器中,并且文件系统编辑器打开. 在“属性”窗口中,选择 ProductName 属性,并键入”亿万电器成套报价系统”. 2.在安装项目中创建