VC++
文章平均质量分 61
pengjc2001
生命不息,折腾不止。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关闭摄像头 结束线程
前面提到用线程打开了摄像头程序。现在我们该如何去关闭它。该程序是在线程内的一个死循环,如果循环过程中来监听某一变量的变化,做条件来结束循环。即该线程也结束。bool CcamShowDlg::CameraOpen(){ capture.open(0); if (capture.isOpened() == 0) { AfxMessageBox(_T("摄像头初始化失败")); r原创 2015-08-17 19:31:28 · 3386 阅读 · 0 评论 -
windows程序设计读书笔记四
1、建立一个内存DC hdcMem = CreateCompatibleDC(hdc); 此时,内存DC的显示表面是单色、1个像素宽、1个像素高。即显示表面仅仅1位。2、CreateCompatibleBitmap创建一个与设备兼容的位图, ::GetClientRect(hwnd, &rc); hBitmap = CreateCompatibleBitmap(hdc, rc.right-rc.left, rc.bottom-rc.top);原创 2017-03-15 15:19:13 · 620 阅读 · 0 评论 -
windows程序设计读书笔记之练习一
看完第5章,突然想写一个类cad的程序,先做简单功能描述及可能用到的函数1、画直线,线宽、线形可以设置2、鼠标滚动,放大 缩小, 放大的中心区为鼠标位置。原创 2017-02-25 14:52:52 · 618 阅读 · 0 评论 -
windows程序设计读书笔记三
我想我知道为什么CAD软件中,当鼠标移动很快时,图像会跟不上了。鼠标移经窗口的客户区时,Windows系统不会为鼠标经过的每个象素位置都产生WM_MOUSEMOVE消息。程序收到的WM_MOUSEMOVE消息个数取决于鼠标硬件和窗口过程处理鼠标移动的速度。换言之,如果消息队列里还未有处理WM_MOUSEMOVE消息,Windows就不会重复向消息队列中添加该消息。鼠标的捕获如何实现原创 2017-02-22 20:02:00 · 643 阅读 · 0 评论 -
windows程序设计读书笔记二
绘图基础这一章强调最多的莫过于 资源的取得 及 释放1、希望在图形输出设备上绘制图形,必须首先获取设备环境(DC)的句柄。在GDI函数中这个句柄作为一个参数,告诉windows在哪个设备上进行绘图。对设备的使用完毕时,必须释放该句柄。a、如果在处理一条消息时获取了视频显示的设备环境,则应该在退出当前窗口过程之前释放它。释放句柄后,它将不再有效。对打印机设备环境句柄,规则并没这么严格。处原创 2017-02-21 17:12:42 · 684 阅读 · 0 评论 -
三菱FX系列PLC与PC通讯的实现之专有协议(计算机联接)的程序设计之二
在实现这程序的过程中,关于字符串的使用。1、CString类型加法。指令操作是由各个功能区组成的。Instruction = pParentDlg->m_StationID + pParentDlg->m_PCID + Instruction + pParentDlg->m_WaitingTime + SoftElementType+ SoftElementNum + m_SoftEl原创 2017-02-11 14:27:52 · 5256 阅读 · 2 评论 -
windows程序设计读书笔记一
1、注册窗口类时,类的名称不能重复,当前面已经注册了一个名字的类(lpszClassName),后面的窗口类就不能再用这个名字了。以下代码用 szAppName[] 及szAppName1[] 放置两个类名字符串,若szAppName1[] 的内容与szAppName[]一样时,在第二次注册时不会成功,由GetLastError()的返回值是1410 可以到 〖1410〗-类别已存在。原创 2017-02-20 14:10:02 · 767 阅读 · 0 评论 -
三菱FX系列PLC与PC通讯的实现之专有协议(计算机联接)的程序设计之一
阅读内容为:FX系列微型可编程控制器用户手册(通讯篇)中计算机链接功能章节。采用本方法通信,pc端的实现,其实就是,把操作按照协议(2种)翻译成相应的字符串,通过串口发送给plc。编写一应用程序,使得对plc的操作能够按照协议翻译成字符串并从串口输出。程序基本框架:1、串口功能设置区2、协议设置区3、指令设置区4、串口输出显示区5、串口输入显示区(包括翻译功原创 2017-02-11 11:42:16 · 47655 阅读 · 12 评论 -
[问题保存笔记]基于halcon开发的模板匹配的软件问题
1、在使用相机抓图时,相机第一次触发,没有图像。一开始怀疑软件触发后,去取图,可能相机并没准备好,因此加sleep延时,也没解决。不知道什么原因。代码流程: CameraSetSnapMode(0, CAMERA_SNAP_TRIGGER); int m_width = 0, m_height = 0, len = 0; CameraGetImageSize(0, &m_原创 2016-11-29 08:57:27 · 2171 阅读 · 0 评论 -
MFC 控件变量
一直以来都不喜欢去用控件变量去操作控件的相关操作,而选择通过控件ID的模式来操作GetDlgItem(IDC_XXXX)->Fuctions。其实选择这个模式不外乎是在躲避对控件变量操作的不熟悉。今天特意去阅读了相关资料。控件关联变量时,1,可以有控件类别(Control);2,也可以有值类别(Value);对于控件类别的变量,1,在类定义中会增加一个变量 CButton m_cMyB原创 2016-09-03 15:09:02 · 1546 阅读 · 0 评论 -
临界区使用问题
刚才编写程序时,由于临界区使用的问题。1、临界区定义后,却忘记了初始化;这个问题出现了好多次了。2、在主进程中使用了临界区,导致程序无响应了;临界区头文件#include"afxmt.h"CRITICAL_SECTION CriticalSection;#define LOCK_SECTION EnterCriticalSection(&Critical原创 2016-08-27 14:53:14 · 689 阅读 · 0 评论 -
MFC CFileDialog使用
昨天,TG说要写一个保存图片的操作。虽然Halcon里提供了保存图片的函数write_image(Image : : Format,FillColor,FileName : ) 但是仅依靠这个函数是无法实现界面友好的。因此要做出一个具有windows风格的保存操作,还是得使用MFC的东西。CFileDialog类封装了Windows常用的文件对话框。常用的文件对话框提供了一种原创 2016-08-27 09:26:07 · 6754 阅读 · 0 评论 -
理解事件Event在线程同步中的应用
场景:按下自动运行按钮后,数据不停的从1累计到50,为一个完整周期,该周期不停的循环;当按下停止按钮后,数据完成当前周期后,停止变化。细节:1.初始化后,自动运行按钮有效,自动运行按钮无效;2.按下自动运行后,将自动运行按钮无效,同时停止运行按钮有效;3.若不按停止运行按钮,Edit框的数据将每50个一次循环;4.按下停止运行按钮后,数据执行完当前周期后停止。在原创 2016-08-15 21:26:15 · 666 阅读 · 0 评论 -
在mfc的图形控件嵌入opencv的图形窗口
在mfc中要显示opencv的图形有以下办法:1、Cvvimage 类里的函数 DrawPicToHDC( IplImage *img, UINT ID) 。现在opencv 3.0已经丢弃了这个类,需要自己去添加。2、StretchDibBit的方法。有一个Mat 和位图列数对应问题。3、能否将opencv的图形窗口嵌入图形控件呢?在初始化函数中加入如下代码。 named原创 2016-07-30 17:45:23 · 4773 阅读 · 5 评论 -
线程破解程序死循环
最近用opencv+mfc做了一个简单的程序(点击button后,打开视频,另一个button关闭视频)。问题来了,读视频的程序是个死循环。怎么解。因此,应该考虑线程的问题了。让视频程序在线程里跑。何为线程?线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈组成。另外,线程是原创 2015-08-17 17:34:04 · 1709 阅读 · 0 评论 -
Windows GDI贴图闪烁解决方法 [转载]
一般的windows 复杂的界面需要使用多层窗口而且要用贴图来美化,所以不可避免在窗口移动或者改变大小的时候出现闪烁。先来谈谈闪烁产生的原因原因一:如果熟悉显卡原理的话,调用GDI函数向屏幕输出的时候并不是立刻就显示在屏幕上只是写到了显存里,而显卡每隔一段时间把显存的内容输出到屏幕上,这就是刷新周期。一般显卡的刷新周期是 1/80秒左右,具体数字可以自己设置的。转载 2017-03-15 16:04:14 · 1219 阅读 · 0 评论
分享