
技术杂谈
文章平均质量分 77
cbNotes
这个作者很懒,什么都没留下…
展开
-
Main()函数纠错
Main()函数纠错----------------你使用对了吗?在C/C++程序中,都必须有一个主函数(入口函数),这个函数就是main()函数,先看看他们的标准定义吧: (1) C语言中C89:2种,当时还没有void类型int main();//不带参数main( );//可选,因为默认的返回类型就是int,所以可以省略。int main( int argc, c原创 2012-11-25 10:27:56 · 2062 阅读 · 1 评论 -
利用命令切换CTabCtrl控件的Tab页面
在项目中有时需要自动切换CTabCtrl控件的Tab页面,通过下面的发发可以实现该功能:void SwitchTab(int nTab){ NMHDR nm; nm.hwndFrom = m_tabShow.m_hWnd; nm.code = TCN_SELCHANGE; m_tabShow.SetCurSel(nTab); m_tabShow.SendMe原创 2016-03-30 13:51:42 · 2276 阅读 · 0 评论 -
VC 枚举串口四法
串口作为最基本的电脑通信 I/O 接口,其使用虽然在 PC 上越来越少,但是在工业仪器领域仍然用的相当普遍,由于笔者工作中需要用到串口,而且发现枚举串口至今仍未搞得很清楚,为此自己先整理下,希望大侠和同行们对我不懂和错误的地方指点一下。 1 、查询注册表查询注册表的方法是网上见到的比较常见的方法,该方法就是使用编程方法读取注册表内信息,相当于用户通过在运行框内输入 ”reg转载 2015-01-21 15:46:23 · 4274 阅读 · 0 评论 -
用SendMessage/PostMessage发送WM_SIZE消息
一般情况下,调用MoveWindow()/SetWindowPos()函数会自动引发WM_SIZE消息,但有时候也需要手工发送该消息,使窗口调整大小和布局。SendMessage()和PostMessage()函数发送WM_SIZE的格式是一样的,在此就只以SendMessage()函数为例。LONG xy;xy =MAKELONG(x, y);SendMessage(WM_原创 2015-02-04 17:44:48 · 9743 阅读 · 0 评论 -
VC 文档+视图 详细分析
目录(?)[-]深入浅出MFC文档视图架构之基本概念深入浅出MFC文档视图架构之文档模板深入浅出MFC文档视图架构之文档深入浅出MFC文档视图架构之视图深入浅出MFC文档视图架构之框架深入浅出MFC文档视图架构之相互关系深入浅出MFC文档视图架构之实例剖析深入浅出MFC文档/视图架构之基本概念 引言 MFC引入了"文档转载 2015-01-28 18:06:40 · 12276 阅读 · 1 评论 -
多线程同步方式一:临界段
多线程同步方式一:临界段1.常见问题在一个进程中,多个线程是共享进程资源的,而由于线程的并发操作,如果不加控制,就有可能出现多个线程同时操作共享资源的情况,而造成操作混乱或出差等。有可能你不太相信,请看下面的一个实例,你可能会真实感受到问题的所在。实例1说明:一个线程一次产生5个相同的随机数,另一个线程将这5个数输出。//.h文件//声明线程处理函数unsigned _原创 2013-02-18 11:52:48 · 4349 阅读 · 1 评论 -
线程间的同步概述
线程间的同步概述1.前言前面几篇文章着重介绍了多线程的三种创建方式及多线程间的4种通信方式,并采用大量的实例演示,相信大家对线程的创建和使用有了一定的了解。若还不了解请复习下前面的文章,多动手写代码和调试,光看不练,假把式。今天先请大家看看下面一个多线程程序,操作很简单,就是创建9个线程,并输出相应的线程编号(即报数)。主要代码如下://声明线程处理函数unsigned __原创 2013-01-21 16:29:20 · 6013 阅读 · 0 评论 -
线程间的通信
线程间的通信1.线程之间的通信简介一般而言,在一个应用程序中(即进程),一个线程往往不是孤立存在的,常常需要和其它线程通信,以执行特定的任务。如主线程和次线程,次线程与次线程,工作线程和用户界面线程等。这样,线程与线程间必定有一个信息传递的渠道。这种线程间的通信不但是难以避免的,而且在多线程编程中也是复杂和频繁的。线程间的通信涉及到4个问题:(1) 线程间如何传递信息(2) 线程原创 2013-01-18 11:54:35 · 51912 阅读 · 7 评论 -
MFC多线程的创建,包括工作线程和用户界面线程
MFC多线程的创建1.MFC多线程简介MFC对多线程进行了一层简单的封装,在Visual C++中每个线程都是从CWinThread类继承而来的。每一个应用程序的执行都有一个主线程,这个主线程也是从CWinThread类继承而来的。可以利用CWinThread对象创建应用程序执行的其它线程。MFC用CWinThread对象来表示所有线程。利用MFC可以创建两种线程,分别称之为工作者线程原创 2013-01-04 16:41:40 · 78867 阅读 · 18 评论 -
VC++实现切换按钮
VC++实现切换按钮有时候要实现两个选项的切换,常规做法1是放两个Radio按钮控件,并设置这两个按钮为一组。2是放一个Check按钮控件。但感觉都不是那么理想和直观。有没有更好的实现方式呢?下面将给你介绍一种我自绘的控件,我把它命名为“切换控件”(SwitchButton)。实现的效果如下图实现,给你一个多的选择,以供参考。下面是实现源码://////////////////原创 2013-01-23 14:19:47 · 4306 阅读 · 1 评论 -
采用_beginthread/_beginthreadex函数创建多线程
1、CRT简介:CRT: (C Runtime Library)即C运行时库,是系统运行的基础,包含了c常用的函数集(如:printf,malloc,strcpy等),为运行main做了初始化环境变量、堆、io等资源,并在结束后清理。在Windows环境下,VC提供的 C run-time library又分为动态运行时库、静态运行时库、多线程、单线程、调试版本(Debug)、发行版本(R原创 2012-12-19 14:20:36 · 18884 阅读 · 1 评论 -
VS2008增加ActiveX控件测试容器(Vista或者windows7系统可用)
1. TSTCON32.exe的编译:在编写Activex控件时,可以用到Active X control test container来测试Activex控件,这在Visual Studio 6.0里面是很方便查找的,工具菜单下面就有。但是在Visaul studio 2008 里面TSTCON32.exe这个文件却消失了。是微软疏忽忘了吗?不是的,而是微软把它放在了例子程序里面(提供源码)原创 2012-12-11 11:23:06 · 4055 阅读 · 1 评论 -
采用CreateThread()创建多线程程序
采用CreateThread()创建多线程程序在window环境下,Win32 提供了一系列的API函数来完成线程的创建、挂起、恢复、终结以及通信等工作:1、主要的函数列表:序号函数名功能1CreateThread()创建一个新线程2ExitThread()正原创 2012-12-10 11:44:59 · 67015 阅读 · 12 评论 -
二进制十进制转换
二进制十进制转换一、二进制:二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。当前的计算机系统使用的基本上是二进制系统。二进制数据也是采用位置计数法,其位权是以2为底的幂。整数部分:(knkn-1…k2k1)2=(kn×2n-1+kn-1×2n-2+原创 2012-11-25 09:45:54 · 5963 阅读 · 1 评论 -
防止CListCtrl 闪烁的几种方法
一:彻底解决了CListCtrl的闪烁问题.此灵感来自于WindowMediaPlayer SDK 9方法很简单.如下:在对话框上加了个静态文本框.并把文本框的样式设为透明.再用SetParent()函数把CListCtrl的父窗口设为刚加的静态文本框.嘿嘿彻底不闪了...代码如下:1在CMyDlg中添加成员 CListCtrl m_List;2BOOL CM转载 2016-05-16 17:12:26 · 2198 阅读 · 0 评论