Windows GUI採用基于事件驱动的编程模型,其实差点儿全部的界面库都是这样做的.在纯粹的Window32 SDK编程时代.人们还能够搞懂整个Windows窗口创建和消息的流通过程.可是在如今各种框架的包装下非常多在Window32 SDK下非常明显易懂的东西显得不是那么简单了.本文力图去繁求简,教你看懂全部框架的基本构造.而其实对于了解这一切的人来说.这些界面框架的设计都是如出一辙的,希望看完本文.再去看常见的MFC/WTL等框架时,不会再认为有不论什么的不适. C程序的处理办法 1.基本…
笔记:争取不用看下面的内容,只看自己的笔记,就能记住这个流程,就算明白了: _tWinMain-->AfxWinMain,它调用四个函数: -->AfxWinInit用于做一些框架的初始化工作. -->CWinApp::InitApplication在appcore.cpp中,和C程序略有不同,这里的工作主要是Doc模板管理器的初始化工作. -->CThread::InitInstance虚函数会被用户改写,在这当中调用CWnd完成窗口的注册和创建,这个在之后一起讲 -->C…
第三十一章 Windows窗体 创建Windows窗体应用程序 在文本编辑器中输入: /* * form.cs * a simple windows form * */ using System; using System.Windows.Forms;   namespace NotepadForms { public class MyForm:System.Windows.Forms.Form { public MyForm() { }   [STAThread] static void Ma…
Windows 窗体是最常见的托管应用程序之一. Windows 窗体创建标准的 Windows 应用程序. 你可以完成此演练使用 Visual Basic 中, C#,或 c + +. 首先,您必须关闭任何打开的解决方案. 准备此次演练 如果已打开某个解决方案,请将其关闭. (在文件菜单中,选择关闭解决方案.) 创建新的 Windows 窗体 接下来,您将创建一个新的 Windows 窗体. 若要创建用于本演练中的 Windows 窗体 上文件菜单中,选择新建然后单击项目. 此时将出现“新建项…
QT源码解析(一) QT创建窗口程序.消息循环和WinMain函数 分类: QT2009-10-28 13:33 17695人阅读 评论(13) 收藏 举报 qtapplicationwindowseclipse跨平台server 版权声明 请尊重原创作品.转载请保持文章完整性,并以超链接形式注明原始作者“tingsking18”和主站点地址,方便其他朋友提问和指正. QT源码解析(一) QT创建窗口程序.消息循环和WinMain函数 QT源码解析(二)深入剖析QT元对象系统和信号槽机制 QT源…
#include <windows.h> #include <mmsystem.h> LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); //声名消息处理函数(处理windows和接收windows消息) //hInstance:系统为窗口分配的实例号,2和3忘了.4是显示方式 int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCm…
目录: 1.Win32项目的windows窗体程序的向导生成了如下代码 2.手工生成代码如下 3.当消息队列中没有消息需要处理,我们可以利用这段时间处理我们自己的任务 1.Win32项目的windows窗体程序的向导生成了如下代码: [cpp] view plaincopy // Timer.cpp : 定义应用程序的入口点. // #include "stdafx.h" #include "Timer.h" #define MAX_LOADSTRING 100 /…
20140702加: WS_OVERLAPPEDWINDOW这个属性如果写成WS_OVERLAPPED,则窗口没有最大最小按钮以及左边的系统的菜单. vs2010下的代码提示快捷键:CTRL + J step: 窗口类赋值(12个参数) 注册窗口类 创建窗口 消息循环 #include<Windows.h> #include<tchar.h> LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARA…
密码框是一种 Windows 窗体文本框,它在用户键入字符串时显示占位符. 创建密码文本框 将 TextBox 控件的 PasswordChar 属性设置为某个特定字符. PasswordChar 属性指定在文本框中显示的字符. 例如,如果希望在密码框中显示星号,请在“属性”窗口中将 PasswordChar 属性指定为“*”. 然后,无论用户在文本框中键入什么字符,都显示为星号. 设置 MaxLength 属性(可选). 此属性确定可在文本框中键入多少字符. 如果超过了最大长度,系统会发出提示…
经常有人问关于模态对话框和系统菜单内部实现原理方面的问题, 因为系统通过API隐藏了太多细节,这2个问题确实令初学者甚至是有经验的开发者困扰, 下面是我个人的一些经验总结. 先说模态对话框,外部看模态对话框其实就是Dialog弹出以后函数(或者说调用栈call stack)不直接返回, 而是要让你做出选择后关闭Dialog, 然后程序再继续往下执行.在你关闭Modal Dialog之前, 你不能做其他操作.下面是我自己模拟模态对话框行为的代码: #define MODAL_DLG_EXIT_NO…
使用 DataGridView 控件的一种最常见方案是“主/详细信息”窗体,这样的窗体可显示两个数据库表之间的父/子关系.如果选择主表中的行,将导致以相应的子数据来更新详细信息表. 主/详细信息窗体很容易实现,这需要使用 DataGridView 控件和 BindingSource 组件之间的交互.在本演练中,将使用两个 DataGridView 控件和两个 BindingSource 组件来生成窗体.窗体将显示 Northwind SQL Server 示例数据库中的两个相关表:Custome…
核心思想:由于Windows窗体每次都会重绘其窗体背景,所以我们可以通过拦截窗体重绘背景的消息(WM_ERASEBKGND),并自定义方法来实现重绘窗体背景.通过TImage组件也可以实现,但是重写WM_ERASEBKGND消息的效率更高一些,所以还是推荐使用这种方法. (2)声明重绘背景消息响应函数 void fastcall OnWMEraseBkgnd(TWMEraseBkgnd& Msg);  (3)添加消息映射 BEGIN_MESSAGE_MAP //拦截重画背景的事件 MESSAGE…
能够正确调整大小的窗体可以提高您的用户界面的易用性. 此演练演示了如何创建当用户调整窗体大小时按比例调整的布局. 您将使用 TableLayoutPanel 控件实现一个接收联系人信息的数据输入窗体. 本演练涉及以下任务: 创建项目 创建布局面板 设置布局网格 创建“姓名”字段 创建“地址”字段 创建“电话号码”字段 创建“备注”字段 完成这些操作后,窗体应如下所示: 若要复制此主题中的完整代码列表,请参见如何:创建用于数据输入的大小可调的 Windows 窗体. 注意 显示的对话框和菜单命令可…
之前有学MFC的同学告诉我觉得Windows的控件重绘难以理解,就算重绘成功了还是有些地方不明白,我觉得可能很多人都有这样的问题,在这里我从Windows窗体的最基本原理来讲解,如果你有类似的疑惑希望这篇文章可以帮你解惑. 1.Windows窗体原理 首先,如果看过Win32 SDK编程的都知道Windows的三大核心系统:负责窗口对象产生和消息分发的USER模块,负责图像显示绘制的GDI模块,负责内存.进程.IO管理的KERNEL模块.试想象一下如何在一个像素阵列上产生窗口对象,其实就是使用G…
一个常规的windows窗体一般都是一些一样的构造.你假设想要更改一些个性化的设置,你能够在这个一般的模板伤添砖加瓦.构造自己比較喜欢的类型.下边就分析一下一般的windows窗体的一般模板. 一. 首先看一下一般的windows窗体都包括什么框架(NO picture you say a J8.....上图上图)例如以下(罗云斌win32汇编书中92页的一张图): 该图简单的描写叙述了一个主要的窗体的框架. 下图是我们分析的第一个窗体的执行演示样例截图: 这个窗体较为简单.可是包括了窗体的基本…
http://msdn.microsoft.com/zh-cn/library/ms171728(VS.90).aspx http://msdn.microsoft.com/zh-cn/library/system.threading.parameterizedthreadstart(v=vs.80).aspx http://msdn.microsoft.com/zh-cn/library/ts553s52(v=vs.80).aspx private void button1_Click(obj…
libuv是一个很强大的异步处理框架(严格意义上不能叫框架,其实就是一组异步函数库,当然框架这东西有各种各样的定义和理解_^...),最初的的目的是用于NODEJS的异步处理,不过因为它是一个独立的项目,可以独立于NODEJS存在,同时又可以跨平台(类UNIX平台基于LIBEV,WINDOWS平台基于IOCP),所以也有很多人直接把他当做异步处理库来使用,其中.net core 的Kestrel Sever就是基于它构建的 . 因为WO对LIBUV理解的也不是很深入,所以就不详细的讲了,只把源码…
当编写一个典型的Windows 窗体程序时,窗体和控件的绘制.效果等操作是不需要特别加以考虑的.这是为什么呢?因为通过使用 .Net 框架,开发人员可以拖动一系列的控件到窗体上,并书写一些简单的与事件相关联的代码然后在IDE中按F5,一个完完全全的窗体程序就诞生了!所有控件都将自己绘制自己,窗体或者控件的大小和缩放都调整自如.在这里经常会用到的,且需要引起一点注意的就是控件效果.游戏,自定义图表控件以及屏幕保护程序的编写会需要程序员额外撰写用于响应 Paint 事件的代码. 本文针对那些Wind…
眼见为实(2):介绍Windows的窗口.消息.子类化和超类化 这篇文章本来只是想介绍一下子类化和超类化这两个比较“生僻”的名词.为了叙述的完整性而讨论了Windows的窗口和消息,也简要讨论了进程和线程.子类化(Subclassing)和超类化(Superclassing)是伴随Windows窗口机制而产生的两个复用代码的方法.不要把“子类化.超类化”与面向对象语言中的派生类.基类混淆起来.“子类化.超类化”中的“类”是指Windows的窗口类. 0 运行程序 希望读者在阅读本节前先看看"谈谈…
java微信开发API解析(二)-获取消息和回复消息 说明 * 本演示样例依据微信开发文档:http://mp.weixin.qq.com/wiki/home/index.html最新版(4/3/2016 5:34:36 PM )进行开发演示. * 编辑平台:myeclipse10.7+win32+jdk1.7+tomcat7.0 * server:阿里云 windows server 2008 64bits * 平台要求:servlet使用注解方式.平台要求:j2ee6.0+.jdk6.0+.…
在项目中,我需要维护一个应用层的字节流协议.这个协议的每条报文都是一个字节数组,数组的头两个字节表示消息的传送方向,第三.四个字节表示消息ID,也就是消息种类,再往后是消息内容.时间戳.校验码等……整个消息看起来差不多长这样: Message Head Message ID Content Timestamp Checksum 2 bytes 2 bytes n bytes 8 bytes 1 byte Message ID指定了消息类型,根据不同的消息类型,对Content有不同的解析方法.在…
使用自定义验证组件库扩展 Windows 窗体             1(共 1)对本文的评价是有帮助 - 评价此主题                          发布日期 : 8/24/2004 | 更新日期 : 8/24/2004 Michael Weinhardt http://www.mikedub.net/ 摘要:数据验证是确保正常的数据捕获以及后续处理和报告的关键步骤.本文介绍了 Windows 窗体固有的程序验证基础结构,并以此为基础开发了用于提供更高效验证功能的自定义验证…
Windows窗体DataGridView控件的性能调优.net 4.5   在处理大量数据时, DataGridView 控制可以消耗大量的内存开销,除非你仔细地使用它. 在客户有限的内存,你可以避免一些这方面的开销,避免内存成本高的特性. 你也可以管理的部分或全部数据维护和检索任务自己使用虚拟模式为了定制的内存使用情况. 在这一节中   最佳实践扩展Windows窗体DataGridView控件 描述如何使用 DataGridView 控制,避免了不必要的内存使用和在处理大量数据时的性能损失…
1.VCL 概貌 先看一下VCL类图的主要分支,如图4.1所示.在图中可以看到,TObject是VCL的祖先类,这也是Object Pascal语言所规定的.但实际上,TObject以及TObject声明所在的system.pas整个单元,包括在“编译器魔法”话题中提到的_ClassCreate等函数,都是编译器内置支持的.因此,无法修改.删除system.pas中的任何东西,也无法将system.pas加入你的project,否则会得到“Identifier redeclared ‘syste…
1.Windows窗体应用程序的各种组件 2.windows窗体控件的主要类别和功能 3.Windows窗体应用程序处理事件的方法 4.添加并配置Windows窗体和控件 5.创建时间处理程序并监视程序 6.在程序运行时向窗体添加控件和事件处理程序 1.创建简单Windows应用程序 之前创建的HelloWorld的窗口可以和我们平时使用的窗口做个对比,左上角有个标题栏,右上角是几乎所有程序都有的最小化,最大化,关闭按钮.此时来看解决方案管理器(solution explorer).对比软件自动…
1.Windows窗体的基本概念 2.Windows窗体应用程序 3.Windows窗体常见界面元素 4.Windows窗体中的事件处理 1.Windows窗体的基本概念 打开一个Window的系统应用,可以拿记事本作为例子: 这个记事本就是一个窗体,用户和程序之间的交互是通过“窗体”.“按钮”等图形化界面元素进行的.我们使用这些软件为我们实现了一些目的,如上面提到的txt文档,写一些内容然后存到电脑上,也有word套件用于办公,用户和程序进行交互,程序做出来要功能强大,效率高,才能实现我们使用…
实现虚拟模式的即时数据加载Windows窗体DataGridView控件 .net 4.5 原文地址 :http://msdn.microsoft.com/en-us/library/ms171624.aspx  译 Q:77811970    实现虚拟模式的原因之一 DataGridView控制只检索数据,因为它是必要的. 这就是所谓的 即时数据加载 . 如果你正在与一个非常大的表在一个远程数据库,例如,您可能希望避免启动延迟,只检索所需的数据显示和检索额外的数据只有当用户新行滚动到视图. 如…
本文系转载学习. 对于关注对 Windows 窗体应用程序中引发的每个事件按次序进行处理的开发人员来说,事件引发的顺序特别重要.当某种情况需要小心处理事件时(如重绘窗体的某些部分时),必须知道事件在运行时的确切引发顺序.本文提供了一些有关在应用程序和控件的生命周期中的几个重要阶段中的事件顺序的详细信息. 对于验证这些事件的激发顺序有一个很简单的方法,就是创建这些事件的处理函数,即使什么事情都不做.然后在每个函数的入口处设置断点,对程序进行调试运行,看到达断点顺序就可以了. 当 Windows 窗…
http://blog.csdn.net/xyy410874116/article/details/6341787 给windows窗体程序打包成一个安装包:具体操作在:http://hi.baidu.com/415210413/blog/item/15b9e0351cb69b5b241f141e.html 1 新建安装部署项目 打开VS,点击新建项目,选择:其他项目类型->安装与部署->安装向导(安装项目也一样),然后点击确定. 2 安装向导 关闭后打开安装向导,点击下一步,或者直接点击完成…
show()与showDialog()的区别 最常见的显示一个新的窗体的方法有两种,下面直接上代码!! A.WinForm中窗体显示 显示窗体可以有以下2种方法:   Form.ShowDialog()方法 (窗体显示为模态窗体)   Form.Show方法()方法 (窗体显示为无模态窗体)   PS:模态对话框,是指用户在Windows应用程序的对话框中,想要对对话框以外的应用程序进行操时,必须首先对该对话框进行响应.如单击[确定]或[取消]按钮等将该对话框关闭.相对应的另一个对话框是无模式对…