
Windows
文章平均质量分 77
Qsir
这个作者很懒,什么都没留下…
展开
-
Windows应用程序交互过程
Windows的应用程序一般包含窗口(Window),它主要为用户提供一种可视化的交互方式(窗口是由线程(Thread)创建的).Windows 系统通过消息机制来让系统和用户进行交互,用户通过触发事件来触发消息,消息(Message)被发送,保存,处理,一个线程会维护自己的一套消息队列(Message Queue)[仅当线程有对应的创建窗口和处理窗口消息时候],在发生输入事件之后,Windows 系统将事件转换为一个消息并将消息放入程序的消息队列中.程序通过执行一块称之为「消息循环」的程序代码从消息队列中转载 2022-08-17 15:05:27 · 1232 阅读 · 0 评论 -
Windows消息机制(MFC)
消息分类与消息队列Windows中,消息使用统一的结构体(MSG)来存放信息,其中message表明消息的具体的类型,而wParam,lParam是其最灵活的两个变量,为不同的消息类型时,存放数据的含义也不一样。time表示产生消息的时间,pt表示产生消息时鼠标的位置。按照类型,Windows将消息分为:(0) 消息ID范围系统定义消息ID范围:[0x0000, 0转载 2017-05-16 13:12:33 · 428 阅读 · 0 评论 -
MFC 宏常识
1、宏就是用宏定义指令#define定义一个标识符,用它来表示一个字符串或一段源代码。MFC宏作为MFC类库的一个组成部分在MFC应用程序中经常出现。MFC宏在路径".../Microsoft Visual Studio/VC/atlmfc/include"下的Afxwin.h、Afx.h及Afxmsg_.h等MFC头文件中分别进行了定义。(1)常用的MFC宏包括消转载 2017-05-16 13:19:00 · 1685 阅读 · 0 评论 -
Window 窗口层次关系
相信在Window 下面编程的很多兄弟们都不是很清楚Window 中窗口的层次关系是怎么样的,这个东西很久已经研究过一下,后来又忘记了,今天又一次遇到了这个问题,所以便整理一下。下面就说说Window 中桌面(Deskkop)以及顶层窗口,以及子窗口之间的关系。 在Window 的图形界面下,最基本显示信息的元素就是窗口,每一个Window 窗口都管理着自己与其他窗口之间转载 2017-05-16 13:30:36 · 1748 阅读 · 0 评论 -
Windows窗口分析
(本文尝试通过一些简单的实验,来分析Windows的窗口机制,并对微软的设计理由进行一定的猜测,需要读者具备C++、Windows编程及MFC经验,还得有一定动手能力。文中可能出现一些术语不统一的现象,比如“子窗口”,有时候我写作“child window”,有时候写作“child”,我想应该不会有太大影响,文章太长,不一一更正了)问题开始于我的最近的一次开发经历,我打算把程序的一部分界面放在转载 2017-05-16 13:54:28 · 1186 阅读 · 0 评论 -
关于NTDDI_VERSION,_WIN32_WINNT,WINVER的含义
在使用一些新版本的API,或者控件的新特性(比如新版的ComCtl32.dll)的时候,你可能会得到“error C2065: undeclared identifier.“这个错误。原因是这些功能是依赖于你的操作系统的版本的。而你的头文件中的定义并不是最新的。(对于MFC,就是stdafx.h)下面详细列举了每个Windows版本对应的NTDDI_VERSION,_WIN32_WINNT,WIN转载 2017-05-16 14:04:03 · 1856 阅读 · 0 评论 -
VC/MFC如何设置对话框背景颜色
方法一:调用CWinApp类的成员函数SetDialogBkColor来实现。 (这个函数已经废弃)?1void SetDialogBkColor(COLORREF clrCtlBk = RGB(192, 192, 192), COLORREFclrCtlText = RGB(0, 0, 0));其中函数转载 2017-05-16 14:20:43 · 479 阅读 · 0 评论 -
如何完美的将对话框设置成无边框无标题栏样式?
很多同学在绘制UI时喜欢将窗口或者对话框设置成无边框无标题栏样式,然后在客户区里就可以”胡作非为“了,想干什么都行然而新手们包括笔者以前都遇到的一个问题是:对于对话框来说直接这样设置:ModifyStyle(WS_CAPTION | WS_THICKFRAME, 0, SWP_FRAMECHANGED);是不完美的,他们会发现在对话框的情况下,那个border还是存在,最后怎么转载 2017-05-16 14:22:58 · 3066 阅读 · 0 评论 -
VC资源分配、释放表
资源 分配函数 清除函数 需要手动清除?================================================================================================== Accel转载 2017-05-16 14:25:49 · 345 阅读 · 0 评论 -
一步一步玩控件:自定义TabControl——从山寨Safari开始
版权声明:没什么版权,爱转不转作者:野比 (conmajia@gmail.com)时间:May, 2012封面图片为野比原创,请勿未经允许私自引用#1-1嗯,各位,又是我,生物钟颠倒的家伙。今天我要山寨的是大名鼎鼎的Apple,传说中的「被山寨之王」。没错,都被我山寨好几次了。说起Apple,相信大家对他家转载 2017-05-16 15:01:58 · 877 阅读 · 0 评论 -
Win32串口操作的技巧
1.开启一个 Serial Port 利用一般开启档案的 CreatFile() 即可开启 serial port device[cpp] view plain copyprint?HANDLE CreateFile( LPCTSTR lpFileName, // pointer to name of the file DWORD dwDesi转载 2017-05-17 10:12:33 · 1490 阅读 · 0 评论 -
Win32 串口编程(一)
翻译自:ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.WIN32COM.v10.en/dnfiles/html/msdn_serial.htm老外写的文章,虽比较全面,但很啰嗦,不如看各个函数的文档来得快。为方便以后查阅,列出本文涉及的主要函数如下:CreateFile、ReadFile、WriteFile、GetOverlappedResult、转载 2017-05-17 13:29:27 · 604 阅读 · 0 评论 -
Win32 串口编程(二)
3 串口状态有两种获取通信端口状态的方法。第一种方法是设置事件掩码,当指定事件发生时应用程序会收到通知。SetCommMask函数用于设置事件掩码,WaitCommEvent用于等待指定的事件发生。它们与16位Windows中的SetCommEventMask和EnableCommNotification类似,只是它们不发送WM_COMMNOTIFY消息。第二种方法是不时地调用另一些状态函数来转载 2017-05-17 13:31:05 · 620 阅读 · 0 评论 -
Win32 串口编程(三)
3.2 警告使用EV_RXCHAR标志可以在每个字节到达端口时通知线程。与ReadFile配合使用,可以让程序在数据到达接收缓冲区后立即被读取;这与提交读取操作请求,然后等待数据到达是不同的。这对于以非重叠方式打开的端口特别有用,因为程序在数据到达时被EV_RXCHAR事件通知,而不需要轮询操作。这样可以得到下列伪代码:DWORD dwCommEvent;DWORD dwR转载 2017-05-17 13:33:10 · 754 阅读 · 0 评论 -
Win32 串口编程(四)
7 通信超时通信超时是影响读写操作的另一个重要方面。如果操作所用时间大于超时值,则操作完成,ReadFile、WriteFile、GetOverlappedResule或者WaitForSingleObject不会返回错误代码,它们都指示操作成功完成。实际传输的字节数小于请求的字节数是操作超时的唯一指示。如果ReadFile返回TRUE,但是读取到的字节数小于请求的字节数,则操作超时了。如果重转载 2017-05-17 13:35:31 · 584 阅读 · 0 评论 -
Windows ID事件及解释(XP、2000、2003)【转】
范围:0~5073)代码 错误信息解释0 操作成功完成。1 函数不正确。2 系统找不到指定的文件。3 系统找不到指定的路径。4 系统无法打开文件。5 拒绝访问。6 句柄无效。7 存储控制块被损坏。8 存储空间不足,无法处理此命令。9 存储控制块地址无效。10 环境不正确。11 试图加载格式不正确的程序。12 访问码无效。13 数据无效。14 存储空间不足,无法完成转载 2017-05-17 13:52:09 · 6672 阅读 · 0 评论 -
Win32消息机制
出处:http://www.cppblog.com/suiaiguo/archive/2009/07/18/90412.html消息是指什么?消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使W转载 2017-05-17 14:01:42 · 545 阅读 · 0 评论 -
深入浅出Win32多线程程序设计
引言 从单进程单线程到多进程多线程是操作系统发展的一种必然趋势,当年的DOS系统属于单任务操作系统,最优秀的程序员也只能通过驻留内存的方式实现所谓的"多任务",而如今的Win32操作系统却可以一边听音乐,一边编程,一边打印文档。 理解多线程及其同步、互斥等通信方式是理解现代操作系统的关键一环,当我们精通了Win32多线程程序设计后,理解和学习其它操作系统的多任务控制也非常容易。转载 2017-05-17 15:09:29 · 1433 阅读 · 0 评论 -
Windows消息和事件的区别 VC++解惑
首先要明确VC++中使用消息映射技术处理“消息”和“事件” ,通过DECLARE_MESSAGE_MAP()等宏通杀 事件就是“当....的时候”,事件总是和一个ID有关 消息就是“嗨!你该干....了” ,VS2005以上的“消息”标签中就是VC6 Windows Messages Handler中的内容 我们一般都是在 "当.转载 2017-05-17 15:17:52 · 3368 阅读 · 0 评论 -
MFC之ComboBox控件用法
本文以实例形式较为详细的讲述了MFC中ComboBox控件的用法。分享给大家供大家参考之用。具体方法如下:一、ComboBox简介:ComboBox控件是由一个文本输入控件和一个下拉菜单组成的。用户可以从一个预先定义的列表里选择一个选项,同时也可以直接在文本框里面输入文本。从工具栏中拖一个Combo Box控件.右击添加变量,变量名为cbBox.二、用法:1.为控件添加选项,指转载 2017-05-14 13:11:28 · 5110 阅读 · 0 评论 -
Combo box的使用
以下内容摘自:http://blog.sina.com.cn/s/blog_4b559bf30100gi6i.htmlCComboBox控件详解CComboBox控件又称作组合框控件,其有三种形态可供选择,1.简单组合框(Simple)2.下拉组合框(Drop-down)3.下拉列表式组合框(Drop-down list). CComboBox控件的常用设置属性说明:转载 2017-05-14 14:55:33 · 898 阅读 · 0 评论 -
基于VC++开发串口通信的方法
串行通信中的关键是串行通信设备的初始化、数据的发送和接收及其实现方式。 在Dos环境下,用户可以直接对通信设备编程,可以通过查询中断的方式使用通信设备。但是Windows不提倡应用程序直接控制硬件,而是通过Windows所提供的设备驱动程序来进行数据传递。在Windows环境中,通信支持中断功能,当通信设备接收到一个输入字符的时候就产生一个硬件中断,该中断暂停应用程序的执行,并把接收转载 2017-05-19 16:30:40 · 2287 阅读 · 0 评论 -
Windows下C/C++获取当前系统时间
Windows下CC获取当前系统时间方案一localtime优点仅使用C标准库缺点只能精确到秒级方案二GetLocalTime sys 优点能精确到毫秒级缺点使用了windows API 方案三systemtime方案四timenull方案五CTime如何在C中将filetime时间转化为字符串filetimeSYSTEMTIME st char strTime128s转载 2017-05-31 12:19:30 · 8766 阅读 · 0 评论 -
如何在C++中将filetime时间转化为字符串?
先将filetime转化为systemtime再SYSTEMTIME st; char strTime[128];sprintf(strTime,"%d-%d-%d %d:%d:%d",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond); 注释1:对于SYSTEMTIME的显示也可以使用m转载 2017-05-31 12:21:21 · 1711 阅读 · 0 评论 -
Windows API的时间结构体、时间转换及时间获取
Windows API的时间结构体、时间转换及时间获取 时间格式:DosDateTime FileTime SystemTime | | |使用上面转载 2017-05-31 12:22:42 · 1923 阅读 · 0 评论 -
Win32时间类型FILETIME/SYSTEMTIME/WINDOWSTIME(FILETIME这个名字很奇怪,其实他跟FILE并没有直接关系,只是很多File的API中,都以这个为时间的类型)
Win32的时间类型在Win32时间类型有这样几种类型FILETIME/SYSTEMTIME/WINDOWSTIME先提个问题,如何计算当前时间100天以后的时间,在win32中。1.SYSTEMTIME SYSTEMTIME的定义是这样typedef struct _SYSTEMTIME { WORD wYear; WORD转载 2017-05-31 12:24:02 · 845 阅读 · 0 评论 -
Windows中的时间(SYSTEMTIME和FILETIME)
上一篇中介绍了C运行库中的时间处理函数。这一篇介绍Windows SDk中提供的时间函数。两种时间系统之间没有本质区别(事实上CRT时间是用Windows时间实现的,当然这是说的VC实现),同样提供本地时间和UTC时间之间的转换。不过CRT中的tm时间在SDK中对应为系统时间(SYSTEMTIME),CRT中的time_t时间在SDK中对应的为文件时间(FILETIME),那个"特殊时刻"也变成1转载 2017-05-31 12:26:03 · 1233 阅读 · 0 评论 -
CRT中的时间(time_t和tm)
时间处理时实际项目中经常碰到的问题,这里介绍最常用的时间处理函数。 首先介绍基本的时间概念。时间一般分为两种,一种是本地时间(Local Time),一种是协调世界时间(Coordinated Universal Time ,UTC),也就是传说中的格林威治时间。本地时间与UTC时间之间的差即为时差,比如,北京时间(东八区)比UTC时间晚8个小时。 C运行库中处理时间的函数主要转载 2017-05-31 13:35:52 · 792 阅读 · 0 评论 -
Windows 各种计时函数总结
本文对Windows平台下常用的计时函数进行总结,包括精度为秒、毫秒、微秒三种精度的5种方法。分为在标准C/C++下的二种time()及clock(),标准C/C++所以使用的time()及clock()不仅可以用在Windows系统,也可以用于Linux系统。在Windows系统下三种,使用Windows提供的API接口timeGetTime()、GetTickCount()及QueryPerf转载 2017-05-31 14:43:53 · 579 阅读 · 0 评论 -
Windows系统时间(FILETIME和SYSTEMTIME)
前面的《Windows各种计时函数总结》介绍了Windows系统常用的5种计时函数——标准C/C++下的time()及clock(),在Windows系统下的API接口timeGetTime()、GetTickCount()及QueryPerformanceCounter()。下面来介绍下Windows系统中表示时间的两个结构体——FILETIME和SYSTEMTIME及相关函数。 先转载 2017-05-31 14:45:26 · 7487 阅读 · 0 评论 -
LIST_VIEW_和LVITEM用法
ListCtrl在工作中,常常用到,也常常看到大家发帖问怎么用这个控件,故总结了一下自己的使用经验,以供参考使用。先注明一下,这里,我们用m_listctrl来表示一个CListCtrl的类对象,然后这里我们的ListCtrl都是report形式,至于其他的如什么大图标,小图标的暂时不讲,毕竟report是大众话的使用。其次,我们这里用条款一,条款二来描述第一点,第二点,这个是参照转载 2017-06-01 10:14:14 · 1605 阅读 · 0 评论 -
LVITEM结构-列表视图控件的一个数据结构
列表视图控件(List Control)列表视图控件是一种非常常用的控件,在需要以报表形式显示数据时,列表控件通常是最好的选择,许多专用的数据报表控件,也是在它的基础上派生而来。与树视图类似,列表控件可以由多个子项目组成,并且支持大图标、小图标、列表和报表4种方式显示信息,如图1所示。图1 列表视图的4种显示方式列表视图包含一个项目列表,而其中每个项目由图标、项目名称和多个子项组成,每转载 2017-06-01 10:47:00 · 691 阅读 · 0 评论 -
如何用SendMessage模拟某一按钮的点击事件
今天在写程序的时候,用到了进程间的通信,上网查了些相关的资料,一般都是通过消息、共享内存、 socket,管道(Pipe),信箱(Mailslot),等等。因为我进程间通信的时候数据量不太大,所以就先测试了一下消息。一 般情况下,用消息来实现进程通信相对比较简单,自定义消息、手动添加消息映射、编写响应函数,发送端先FindWindow(),然后就向目标进程 SendMessage()。自定转载 2017-06-06 10:29:59 · 5804 阅读 · 0 评论 -
半透明AlphaBlend
AlphaBlend 函数功能:该函数用来显示透明或半透明像素的位图。函数原型:BOOL AlphaBlend( HDC hdcDest, // handle to destination DC int nXOriginDest, // x-coord of upper-left corner int nYOri转载 2017-05-22 12:12:08 · 577 阅读 · 0 评论 -
MFC中动态创建控件以及事件响应实现方法
本文实例讲述了MFC中动态创建控件以及事件响应实现方法,分享给大家供大家参考。具体实现方法如下:动态控件是指在需要时由Create()创建的控件,这与预先在对话框中放置的控件是不同的。一、创建动态控件: 为了对照,我们先来看一下静态控件的创建。 放置静态控件时必须先建立一个容器,一般是对话框,这时我们在对话框编辑窗口中,从工具窗口中拖出所需控件放在对话框中即可,再适当修改控件I转载 2017-06-07 12:17:14 · 6531 阅读 · 1 评论 -
VS2010 手动为控件添加事件处理函数
越来越感觉到VS2010 的类向导的坑了,在一些大项目中类向导直接不能使用。今天在为一个按钮控件添加事件处理函数时。类向导死活添加不上函数。无奈只能手动添加了。 下面记录下来,以备以后查询和给有需要的提供参考吧 手动为控件添加事件处理函数比较简单,只需要几步就可以完成。 一,在你的.cpp里面找到BEGIN_MESSAG_MAP()……………………END_MESSAG_M转载 2017-06-07 13:14:58 · 3960 阅读 · 0 评论 -
MFC总结之CListCtrl用法及技巧(一)
本文根据本人在项目中的应用,来谈谈CListCtrl的部分用法及技巧。当初学习时,查了很多资料,零零碎碎的作了些记录,现在主要是来做个总结,方便以后查阅。主要包括以下十三点内容:基本操作、获取选中行的行号、复选框操作、动态设置选中行的字体颜色、设置选中行的背景颜色、禁止拖动表头、让第一列居中显示、设置行高与字体、虚拟列表技术、点击表头时进行归类、向上与向下移动、动态调整大小问题、避免闪烁问题。转载 2017-06-07 14:42:44 · 771 阅读 · 0 评论 -
MFC总结之CListCtrl用法及技巧(二)
续第一篇:MFC总结之CListCtrl用法及技巧(一) http://blog.youkuaiyun.com/zwgdft/article/details/7560592 本篇重点介绍:禁止拖动表头、让第一列居中显示、设置行高与字体、虚拟列表技术、点击表头时进行归类、向上与向下移动、动态调整大小问题、避免闪烁问题。 6、禁止拖动表头 重载OnNotify转载 2017-06-07 14:44:43 · 1006 阅读 · 0 评论 -
MFC CListCtrl 取消选中
最近写一个程序,用到CListCtrl 。其中取消选中,我开始使用的是SetItemState(i, NULL, NULL);一直觉得程序有问题,但是没有去深究。今天回过头来找原因,发现原来是这句错了。正确的写法应该是SetItemState(i, 0, -1); /////////////////////////////////////////////另外引转载 2017-06-08 09:16:31 · 2203 阅读 · 0 评论 -
MFC隐藏和显示一个控件的方法
通常,我们在用MFC做界面的时候,控制控件的出现和隐藏很重要,同时这也体现出界面的友好和灵活性。那么,怎样在MFC中实现一个控件的隐藏和显示呢?这里,我就说一个我知道的简单方法。第一、先获得控件对象。这里用一个EditBox控件为例。 CEdit *edit = (CEdit*)GetDlgItem(IDC_EDIT_XXXX); 其中,IDC_转载 2017-06-22 11:19:03 · 1496 阅读 · 0 评论