windows程序设计
文章平均质量分 88
windows程序设计的相关原理、实战和代码
lonelyrains
这个作者很懒,什么都没留下…
展开
-
c# 小知识点
DispatcherTimer 定时器可以设置控件 但是 System.Timers.Timer不行原创 2021-07-30 16:14:22 · 480 阅读 · 0 评论 -
dotnet 常用库
总览 awesome-dotnet包含各种可能用到的功能库类型特别经常用到的ui库,如下:MaterialDesignInXamlToolkitribbonxceed wpftoolkitxceedsoftware/wpftoolkit 这个库从4.0.0开始使用了非商用免费的Xceed Community License agreement。老版本(比如3.5)采用的MS-PL的License,根据网上对这个License的解读,是可以免费商用的oxyplot表格库...原创 2021-04-23 15:10:23 · 391 阅读 · 0 评论 -
icon素材
https://www.microsoft.com/en-us/download/details.aspx?id=35825 Visual Studio Image Libraryhttps://github.com/google/material-design-icons material-design-icons 原创 2020-07-22 20:27:32 · 194 阅读 · 0 评论 -
C# winform datagridview 编辑状态的问题
winform的datagridview,其中某个cell在编辑时,如果再点击其他菜单或者使用快捷键完成某个功能,编辑的cell所在的内容会保留原来的值,而不会更新为新的值控件没有主动触发losefocus的功能所以需要考虑如何实现一个work around既然菜单和快捷键不会触发更新,而同一个界面的button.focus可以触发datagridview的值更新,那么可以定义一个size为0,0的button,让它focus,再进行其他操作。注意1:直接设置visible=fa..原创 2020-06-28 20:50:12 · 1847 阅读 · 0 评论 -
使用winform而不是服务
winform以管理员身份运行: https://www.cnblogs.com/yuluo/p/5718057.htmlwinform隐藏: https://www.cnblogs.com/xielong/p/6626105.html开机自启动: https://www.cnblogs.com/mqxs/p/9475581.html...原创 2020-04-10 09:28:17 · 214 阅读 · 0 评论 -
c#反射获取单例对象的实例
object obj = null;if (classItem.BaseType.Name == "Singleton`1"){ obj = classItem.BaseType.GetProperty("Instance").GetValue(null);}else{ obj = Activator.CreateInstance(classItem);}反射创建实例,最常用...原创 2019-11-28 19:37:00 · 2610 阅读 · 0 评论 -
C# winform 控件使用
C# FileSystemWatcher 在监控文件夹和文件时的用法 https://www.cnblogs.com/armyfai/p/4050279.htmlNotifyICon https://www.cnblogs.com/huashanqingzhu/p/6899383.htmlbackgroundWorker 和 PerformanceCounter https://w...原创 2019-11-11 00:56:30 · 457 阅读 · 0 评论 -
将ActiveX控件标记为安全
IE ActiveX 控件 安全原创 2016-03-15 20:42:09 · 2436 阅读 · 0 评论 -
windows vc6/vs2005/vs2008 release 调试
windows vc6/vs2005/vs2008 release 调试原创 2013-08-14 16:13:09 · 1681 阅读 · 0 评论 -
bat定时任务
windows平台定时完成某任务 脚本 bat原创 2015-04-20 14:13:30 · 9583 阅读 · 0 评论 -
Windows平台使用Github
github windows failed to sync this branch原创 2015-04-21 20:10:00 · 2772 阅读 · 0 评论 -
MFC自定义MessageBox
MFC 自定义 MessageBox , 实现根据提示内容、字体大小自适应窗口大小、按钮、图标、文字内容的布局,方便管理原创 2015-04-29 19:47:16 · 6412 阅读 · 0 评论 -
vc6 设置Courier New字体
将如下代码拷贝粘贴至新建的font.reg文件内,然后双击注册即可Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format] [HKEY_CURRENT_USER\Software\Microsoft\DevStudio\6.0\Format\Calls原创 2013-08-15 20:10:25 · 2240 阅读 · 0 评论 -
windows vc 界面闪烁
不适当的UpdateWindow调用。Windows给paint消息指定的优先级比较低,以防止窗口不必要的重画。但是,显示调用UpdateWindow迫使窗口立即被重画,而这很有可能是不必要的调用InvalidateRect不指定更新矩形。API函数InvalidateRect允许用户指定更新矩形,使得重画只限于需要重画的区域;可以传递一个空指针给InvalidateRect函数来更新整个窗口,但原创 2013-08-16 01:49:56 · 1796 阅读 · 0 评论 -
调试windows消息
spy++。可以查看窗口、消息、线程、进程。spy->message->windows->windows finder tool,拖动焦距图标到想监视的指定窗口,定好消息格式,重定向到日志文件,最小化到后台运行。一系列操作完成基本的监控功能。需要注意的是,spy++的消息顺序可能被程序中的API函数PeekMessage的调用影响,这个函数可以以不同于消息到达时的顺序处理消息队列中的消息。但是原创 2013-08-16 02:07:18 · 1921 阅读 · 0 评论 -
VC 多语言 字符编码
VC编译有两种环境,ANSI(MBCS:multi-byte charset)和UNICODE自Windows NT起,Windows的所有版本均完全由Unicode来构建。也就是说所有的 核心函数全部是Unicode的参数。因此,对外的类似FunctionA的ansi函数,其内部都是先转换为FunctionW的Unicode函数形式,然后调用FunctionW。所以,一开始就用unicode原创 2013-09-04 20:09:21 · 1837 阅读 · 0 评论 -
VC调试笔记
1、windows-32调试:①使用map文件根据崩溃地址寻找对应的源代码文件和行号勾选project->settings->link->General mapfile,对应的Project Options中添加:/MAPINFO:LINES /MAPINFO:EXPORTS 。 在不使用优化且没有多dll引用导致的重定向时,崩溃地址寻找对应的代码行的方法:崩溃地址=装载机地址(0x100原创 2013-09-04 23:40:33 · 1507 阅读 · 0 评论 -
设置窗口居中的两种方法
第一种方法void MyCenterWindow(HWND hWnd){BOOL bResult = 0;RECT rect;int xLeft,yTop;GetWindowRect(hWnd,&rect); xLeft = (GetSystemMetrics(SM_CXFULLSCREEN)-(rect.right-rect.left))/2;yTop = (GetSystemMetrics原创 2013-11-22 10:02:58 · 10488 阅读 · 0 评论 -
MFC 动态创建对话框和控件
一段时间以来,都在思考不采用Qt,用Win32-API或者MFC实现的程序使界面可配置。即先配置好需要什么对话框、包含什么控件、完成什么任务,然后运行时创建,用以实现界面和功能的分离。需要可以动态配置控件创建、消息接收函数。之前准备的本文博客草稿标题本来是“基于纯GDI的对话框实现”,内容关键字为:“使用GDI绘制对话框、实现按键消息 动态定制 实现 功能和界面的分离 状态机”。原创 2013-11-28 19:45:59 · 9008 阅读 · 1 评论 -
开发一个简易的任务监控程序
需求:时刻监控任务列表,如果需要一直启动的程序未开启,则开启原创 2013-07-05 13:16:15 · 3537 阅读 · 1 评论 -
windows 图标显示不一致:清除Windows的图标缓存数据
windows的文件窗口(资源管理器),缩略图方式浏览图标文件时,如果要更新某个图标,但是名字与原来相同,替换之后发现缩略图显示的仍然是原图标。这时,需要清理windows的图标缓存数据。 清理缓存数据的方法:1、先关掉所有的文件夹窗口,Ctrl+Shift+Esc打开任务管理器2、关掉explorer.exe进程,3、文件->新建任务->cmd,依次输入四条命令:C原创 2013-06-26 10:56:15 · 4524 阅读 · 0 评论 -
让控制台输出彩色日志 windows
经常看到一些开源软件(例如NDK编译的时候,操作系统启动的时候)打印的输出很多是彩色的,这样比较容易分辨哪些是重点,增强可读性。代码如下:#include #include #define LOG_TYPE_NORMAL 0#define LOG_TYPE_WARNING 1#define LOG_TYPE_ERROR 2void LOG(int iLogType, char*原创 2013-04-09 14:38:34 · 2741 阅读 · 1 评论 -
用MFC的Edit控件显示日志
1、添加控件,设置控件属性:勾选Multiline、Want return 、Read-only2、class wizard 添加控件成员变量 CEdit m_logctrl3、添加日志:添加CString成员 CString m_Log在事件响应函数中,添加日志的代码,并将添加到日志末尾最新的内容在控件的底部更新显示: UpdateData(TRUE); m_log +=原创 2013-03-20 16:22:23 · 11517 阅读 · 3 评论 -
bat读取文件夹下某一类文件的路径信息表
问题背景:一个大工程,总会包含很多的bat或者py或者sh文件,为了查找和统计这些文件,以观察整个项目的工作流程,需要一个针对这些脚本 “粘合剂”文件的路径信息表。初步想法:用for:for /r . %%f in ("*.%1") do echo %%~f 递归当前目录,获得参数1类型的文件的路径信息表逐步完善:用for:for /r . %%f in ("*.原创 2012-05-11 14:48:34 · 6168 阅读 · 0 评论 -
Windows MFC 全局模态 实现 (二)
上一篇 Windows MFC 全局模态 实现 介绍了一下第一种方法,但是这个方法有个问题是,即使在对话框外不能点击,框外点击鼠标,当前需要操作的窗口也是失去了焦点的。这样用户体验影响比较严重。而且还有个问题是,如果要适配32位、64位系统,要达到全局模态(禁止鼠标效果)需要32、64位两种库,而且要分别被32、64位系统调用。使用条件限制比较严格。原创 2014-09-16 09:23:44 · 1480 阅读 · 0 评论 -
Windows MFC 全局模态 实现
windows本身没有提供针对整个桌面全局模态对话框的实现方式,需要自己实现。原创 2014-09-09 19:25:19 · 1708 阅读 · 0 评论 -
透明ico图标制作流程(轻型)
透明ico图标制作 轻型原创 2014-07-09 11:28:42 · 2657 阅读 · 0 评论 -
windows平台多语言显示
不同系统语言(中英繁)环境下,正确显示不同配置语言(中英繁)的内容原创 2014-05-22 10:24:07 · 1749 阅读 · 0 评论 -
快速生成指定大小的临时文件的方法
快速生成指定大小的临时文件的方法是生成单一简单结构的文件,直接设置文件头标记内的占位大小,并从系统记录可用位置索引、大小链中截取合适大小,不需要单独寻找空磁盘Windows生成方法:Cmd命令 : >fsutil file Createnew C:\testfile.txt XXX 其中XXX表示所占字节数。如何更快:1、系统磁盘清理,保持空位置尽量连续原创 2015-10-15 18:26:06 · 1110 阅读 · 0 评论 -
windows ddk hid 开发
windows ddk hid 开发原创 2015-10-15 16:31:47 · 1592 阅读 · 0 评论 -
C# 异步控件集中刷新
UI消息响应、事件通知、界面刷新,都是通过循环在对话框被调用线程中执行的。UI新手容易在主线程中实现一些耗时计算,然后让界面卡死在那,非常不友好。UI中手会迂回一下,比如C#中的delegate调用刷新进度条的经典案例。然后照葫芦画瓢每个控件都搞个delegate,非常不优雅。例如之前这篇博文里总结的方法:https://blog.csdn.net/lonelyrains/articl...原创 2019-09-19 23:25:48 · 2104 阅读 · 0 评论 -
C# UI 多线程 通知 变更
如果不同的UI对话框分布在不同的线程创建,比如一个在主线程,一个在子线程,则两个线程可以分别自行操作UI的控件。如果UI对话框是一个线程,业务计算是另一个线程,并且需要操作UI对话框的某个控件,可以这样操作:在主线程中设置一个参数量操作函数,对应的控件需要变化,可以通过InvokeRequired变量来判断。即既可以实现线程通信,又可以实现线程操作UI。// 回调就是自身,很简...原创 2019-06-15 11:28:25 · 705 阅读 · 0 评论