上一页 1 2 3 4 5 6 ··· 17 下一页
摘要: 何谓模态窗体?简单的可以理解为窗体对话框,用户必须在完成该窗体上的操作或关闭窗体后才能返回打开此窗体的窗体。本文不对模态窗体的定义、特征、功能做具体讨论,主要把重点放在如何在.net窗体应用程序中有效的使用模态窗体,解决使用模态窗体中碰到的常见问题。 模态窗体的属性设置 在.net中一个System.Windows.Forms.Form类就表示一个窗体,通过visual studio 2005设计器能够直接添加窗体,切换到设计模式,在属性窗口中会显示属于该窗体的属性和事件。参照标准的模态窗体,以visual studio 2005程序的菜单工具->选项打开的那个选项对话框为例,对于设计器 阅读全文
posted @ 2011-04-21 21:44 逆时针 阅读(12584) 评论(0) 推荐(0) 编辑
摘要: 做了一个定时播放器,程序运行时最小化到任务栏托盘,可这时候关闭或重启操作系统使如果程序没有退出,则系统不能关闭.那么如何实现关机时自动退出程序呢?其实很简单,当windows操作系统执行关闭动作时,它会发送给各个正在运行的应用程序一个消息WM_QUERYENDSESSION,告诉应用程序要关机了,如果反馈回来的消息值为1,那么windows操作系统就会自动关闭.因此,通过截获WM_QUERYENDSESSION消息,就能实现自动退出程序.///<summary>///操作系统关闭时,关闭应用程序///</summary>///<paramname="m& 阅读全文
posted @ 2011-04-21 16:51 逆时针 阅读(475) 评论(0) 推荐(0) 编辑
摘要: C#自定义消息通信往往采用事件驱动的方式实现,但有时候我们不得不采用操作系统的消息通信机制,例如在和底层语言开发的DLL交互时,是比较方便的。下面列举了一些实现方式,供大家参考:一、通过SendMessage或postmessage函数发送:1、定义消息在C++中引用底层的函数很简单,自定义消息如下#define WM_TEST WM_USER + 101而在c#中消息需要定义成windows系统中的原始的16进制数字,比如自定义消息public const int USER = 0x0400;public const int WM_TEST =USER+101;2、发送消息消息发送是通过wi 阅读全文
posted @ 2011-04-08 20:57 逆时针 阅读(6999) 评论(1) 推荐(1) 编辑
摘要: 原文:http://www.blogcn.com/User8/flier_lu/index.html?id=3318394在 C/C++ 代码中,大量掺杂着包括普通类型和数组的结构,如定义 PE 文件头结构的 IMAGE_OPTIONAL_HEADER 结构定义如下:typedefstruct_IMAGE_DATA_DIRECTORY{DWORDVirtualAddress;DWORDSize;}IMAGE_DATA_DIRECTORY,*PIMAGE_DATA_DIRECTORY;#defineIMAGE_NUMBEROF_DIRECTORY_ENTRIES16typedefstruct_I 阅读全文
posted @ 2011-04-08 15:29 逆时针 阅读(3337) 评论(0) 推荐(0) 编辑
摘要: Log4日志组件的应用确实简单实用,在比较了企业库和Log4的日志功能后,个人觉得Log4的功能更加强大点.补充说明下,我使用的企业库是2.0版本,Log4net是1.2.1版本的.在Log4net的应用上,已经有人做了说明分析了,在本文中,主要解析下Log4net中的RollingFileAppender的应用.主要参考了Log4net的帮助文档.在项目中的log4net-1.2.10\doc文件下有.RollingFileAppender主要是基于FileAppender构建的,很多属性方法都是继承于FileAppender,所以在选项设置上,也有许多是相同的.下面的例子使日志文件名为lo 阅读全文
posted @ 2011-03-25 15:59 逆时针 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 文章引用至:http://blog.csdn.net/lyjcn/archive/2009/08/11/4432833.aspx1. log4net简介log4net是.Net下一个非常优秀的开源日志记录组件。log4net记录日志的功能非常强大。它可以将日志分不同的等级,以不同的格式,输出到不同的媒介。Java平台下,它还有一个姐妹组件——log4j。log4net的下载地址:http://logging.apache.org/log4net/download.html2. log4net的组成log4net主要由五部分组成,分别为Appenders、Filters、Layouts、Logg 阅读全文
posted @ 2011-03-25 15:25 逆时针 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 摘 要:在《csdn开发高手》2004年第03期中的《化功大法——将DLL嵌入EXE》一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资源中释放出来,通过静态加载延迟实现DLL函数的动态加载,程序退出后实现临时文件的自动删除,从而为解决“DLL Hell”提供了一种解决方案。这是一个很好的设计思想,而且该作者也用C++实现了,在Internet上也有相似的VB程序,但在某一技术论坛上提起这种设计方法时,有网友提出:“这种方法好是好,但就是启动速度太慢”。这是因为程序启动时实现DLL释放,然后再加载释放出来的DLL,这个过程会耗费一定的时间。鉴于此问题,经 阅读全文
posted @ 2011-03-14 16:45 逆时针 阅读(290) 评论(0) 推荐(0) 编辑
摘要: _cdecl 是C Declaration的缩写,表示C语言默认的函数调用方法:所有参数从右到左依次入栈,这些参数由调用者清除,称为手动清栈。被调用函数不需要求调用者传递多少参数,调用者传递过多或者过少的参数,甚至完全不同的参数都不会产生编译阶段的错误。 _stdcall 是Standard Call的缩写,是C++的标准调用方式:所有参数从右到左依次入栈,如果是调用类成员的话,最后一个入栈的是this指针。这些堆栈中的参数由被调用的函数在返回后清除,使用的指令是 retn X,X表示参数占用的字节数,CPU在ret之后自动弹出X个字节的堆栈空间。称为自动清栈。函数在编译的时候就必须确定参数个 阅读全文
posted @ 2011-03-14 16:01 逆时针 阅读(1574) 评论(0) 推荐(0) 编辑
摘要: DLL可以使用两种方法将公共符号导入到应用程序中或从DLL导出函数: 生成DLL时使用模块定义(.DEF)文件。在主应用程序的函数定义中使用__declspec(dllimport)或__declspec(dllexport)关键字。使用.DEF文件模块定义(.DEF)文件是包含一个或多个描述各种DLL属性的Module语句的文本文件。如果不使用__declspec(dllimport)或__declspec(dllexport)导出DLL函数,则DLL需要.DEF文件。可以使用.DEF文件导入到应用程序中或从DLL导出。使用__declspec32位版的VisualC++用__declspe 阅读全文
posted @ 2011-03-14 15:59 逆时针 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 1.this.Close(); 只是关闭当前窗口,若不是主窗体的话,是无法退出程序的,另外若有托管线程(非主线程),也无法干净地退出; 2.Application.Exit(); 强制所有消息中止,退出所有的窗体,但是若有托管线程(非主线程),也无法干净地退出; 3.Application.ExitThread(); 强制中止调用线程上的所有消息,同样面临其它线程无法正确退出的问题; 4.System.Environment.Exit(0); 这是最彻底的退出方式,不管什么线程都被强制退出,把程序结束的很干净。 阅读全文
posted @ 2011-03-11 22:40 逆时针 阅读(306) 评论(0) 推荐(1) 编辑
上一页 1 2 3 4 5 6 ··· 17 下一页