vc
文章平均质量分 52
liuy_yy
回首这十年,碌碌无为,惭愧
展开
-
iocomp数码管控件
属性:digitcount:一共显示几位,需要在非透明模式下才能看的清楚,在此设置为3transparent:透明透明显示segmentcolor:字体颜色precision:精确到小数点几位,在此设置为1data source:绑定到数据库?value:控件显示的处置,在此设置为0showoffsegments:true的效果(digitcount设置为3,p原创 2013-10-20 12:04:52 · 1841 阅读 · 0 评论 -
鼠标移动到button上时候,会引发OnEraseBkgnd和nCtlColor消息
鼠标移动到button上时候,会引发一次OnEraseBkgnd和二次nCtlColor消息,trace语句输出:OnEraseBkgndnCtlColornCtlColor再将鼠标移出button,同样会引发一次OnEraseBkgnd和二次nCtlColor消息,trace语句输出:OnEraseBkgndnCtlColornCtlColor 有意思。原创 2012-01-15 18:11:14 · 865 阅读 · 0 评论 -
CPaintDC dc(this)中的this指针的含义解析
答1:this是指当前窗体对象,dc用带有this指针的构造函数进行构造,是指当前窗口的dc。答2:用了this指针初始化后,你操作的dc就是当前窗体,也即当前窗体就是你的画布!答3:每个类都有一个默认指针this指向自己。答4:就是获取当前窗口的dc而已,可以用这个DC在当前窗口绘图。当然你也可以获取其它窗口的dc,只要传入其它窗口的指针就可以了。同理CClientDC dc(t原创 2012-01-11 09:02:06 · 11922 阅读 · 3 评论 -
vs 2008 界面开发调研
LibUIDK贴图 BCG,xtremes是做vs或office效果最强大的mfc界面库,libuidk是做贴图界面最强大的mfc界面库。 skin++这类hook类型的界面库,基本上没有什么价值,只会使你的程序变得不稳定。它并不会对你的开发界面的过程有任何帮助的。skinse这种界面库和libuidk开发界面的模式应该差不多吧?都是在界面编辑器中创建窗口和控件吧?不过我看了一下,他们不是原创 2011-12-30 20:24:38 · 2787 阅读 · 1 评论 -
类型与格式对应
类型 格式int %dlong %dfloat %fdouble %lfchar %cCString %s 注意格式里没有%L符号原创 2011-12-28 15:10:11 · 655 阅读 · 0 评论 -
程序退出时意外终止和程序不能关掉(必须通过任务管理器关闭)的原因(续)
一、问题描述 描述:在上一篇中提到了CBioUSBAPI类存在bug使得程序退出后进行仍然驻留在内存中(后经验证,若注释掉CBioUSBAPI类的析构函数,则程序正常),必须通过任务管理器去强制关闭。最近在制作两级对话框的时候又出现了与CBioUSBAPI类有关的错误问题:制作返回上一级对话框时界面卡死。后经验证,若注释掉CBioUSBAPI类的析构函数,则程序正常。看来虽然两者错误的原创 2011-12-26 14:52:39 · 2949 阅读 · 0 评论 -
模式对话框与非模式对话框
一、创建模式对话框创建非常简单:只要在CDialog派生类中构造一个对象,并调用该对象的DoModal函数即可。DoModal直到对话框清除后才返回值,其返回值是传给EndDialog的值。CMyDialog dlg;//也可以声明为成员变量,但通常模式对话框都在栈上创建,声明为局部变量即可if(dlg.DoModal()==IDOK){//The user click "ok原创 2011-12-22 15:43:08 · 780 阅读 · 0 评论 -
模式对话框和非模式对话框的区别(出自<MFC windows程序设计>第二版p370)
模式对话框和非模式对话框的区别:(出自第二版p370)1、显示模式对话框需要调用CDialog::DoModal,而显示无模式对话框则要调用CDialog::Create。DoModal要等到对话框被清除才返回。而和DoModal不同,一旦建立对话框,Create就返回。因此,Create返回时对话框还处于显示状态。2、清除无模式对话框要调用DestroyWindow,而不是EndDial转载 2011-12-22 10:32:17 · 1401 阅读 · 0 评论 -
系统调试经验
1、停止采集后电量不足 加速度与电源采用一个通道,采集时切换到加速度信号,停止时切换到电源通道。当停止时,由于切换时间设置不合理,导致监测电源电量时实际采集的加速度电源,而加速度电压比电源实际电压低,所以造成电量显示不足。 2、采集过程中出现的信号突变问题(ad变化从100-600) 原因分析:空调等设备干扰。为了验证,可分别进行如下试验:1,在空调附原创 2011-01-29 09:05:00 · 502 阅读 · 0 评论 -
在对话框中设置背景的三种方法
方法一:在OnPaint中StretchBlt具体是:注释掉CDialog::OnPaint()或放到结尾(原因何在呢?),并加入贴图代码void CqqqqqDlg::OnPaint(){ if (IsIconic()) { CPaintDC dc(this); // device context for painting SendMessage(WM_I原创 2012-01-15 19:44:07 · 3909 阅读 · 0 评论 -
在OnPaint中必须调用一次BeginPaint和EndPaint,且也只能调用一次。(下)
A:在OnPaint中注释此句CDialog::OnPaint();为什么会不停地调用OnPaint函数呢(不断执行TRACE("OnPaint\n");语句)? Q:如果自己的OnPaint代码什么也没做的话(至少没有声明过CPaintDC类型的变量),还必须调用一下CDialog::OnPaint,否则BeginPaint和EndPaint就没有办法被调用了。总之,在响应WM_PA原创 2012-01-15 21:21:38 · 2056 阅读 · 0 评论 -
BioUsb-程序执行流程分析
1、void CMainFrame::OnDeviceConnect() 连接设备//定时器作用:每隔一段读缓存(从设备端点读取数据)//每隔一段时间(10ms)执行mycallback()回调函数,以实现连续采集。::timeSetEvent (10,0,mycallback,(DWORD)this,TIME_PERIODIC); 2、执行mycallback回调函数v原创 2010-03-19 08:57:00 · 1035 阅读 · 0 评论 -
关于合力零点显示的正确显示方式
合力是导出量,x、y、z三个方向是实测量 右脚代码: //通过m_lPointSum - 150个样本取均值求各个方向零点 if (g_bZeroAlreadyRead==FALSE && m_lPointSum > 150) { g_dRightFxSum=sRightFoot.dFx+g_dRightFxSum;原创 2010-07-02 11:15:00 · 742 阅读 · 0 评论 -
Easysize 的使用
Easysize 的使用步骤原文出自http://www.codeproject.com/Articles/1657/EasySize-Dialog-resizing-in-no-time# 1、在stdafx.h中引用EasySize.h头文件(同时将EasySize.h放到你的程序目录中) 2、在类定义中添加DECLARE_EASYSIZEclass CEasySiz原创 2012-01-30 14:13:51 · 12994 阅读 · 6 评论 -
从csdn上整理的帖子2_关于控件自适用对话框大小
总结1:由于目前开发的程序只是在实验室内部使用,其使用的显示器都是实验室自己订购的同一个型号(分辨率为1024*768),因此可以考虑开发程序时将开发环境的分辨率设置与使用环境一样(即1024*768),这样就不存在由于开发环境与使用环境的不一样而导致的对话框自适应分辨率问题了。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~http://topic.csdn.n原创 2012-01-30 10:59:05 · 1911 阅读 · 0 评论 -
How to run a _BAT file in InstallShield
http://blog.csdn.net/cyatzzu/article/details/1790240 InstallShield做的安装包可以执行exe、vbs脚本、js脚本,就是不能执行bat??找这个答案半天。 终于在官方论坛找到了比较perfect的答案。cmd.exe /c batfilename.bat ,咋就没想到呢。 老外的说明很详细了,不多说了,Ctrl转载 2012-01-29 11:36:54 · 1533 阅读 · 0 评论 -
让你的程序变成xp风格
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~http://blog.csdn.net/limigy/article/details/650008 A Simple Way to Enable a Windows XP Look and Feel for VC++ 6.0 MFC Applications Alexander Simano转载 2012-01-25 10:15:05 · 973 阅读 · 0 评论 -
VS2008下改变radio控件字体颜色存在的问题
通过OnCtlColor函数试图改变radio控件字体的颜色为白色,代码如下:HBRUSH CXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); if( pWnd ->GetDlgCtrlID() ==原创 2012-01-24 18:02:53 · 3630 阅读 · 0 评论 -
Button Styles
Button Styles 简称BSBS_OWNERDRAW Creates an owner-drawn button. The framework calls theDrawItem member function when a visual aspect of the button has changed. This style must be set when using th原创 2012-01-24 17:03:23 · 666 阅读 · 0 评论 -
从csdn上整理的帖子1
约定:红色字体显示为重点阅读/////红色加大字体(中号字体)显示为最重点阅读~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~http://topic.csdn.net/u/20080620/15/1D8E30FD-584A-4551-B93A-DA97D5F6423C.html#r_50392023Mackz:正如我猜想的,因为你调用了CDialog::OnPai原创 2012-01-17 09:38:46 · 907 阅读 · 0 评论 -
在OnPaint中必须调用一次BeginPaint和EndPaint,且也只能调用一次。(上)
基于对话框的程序(mfc默认生成),重载OnEraseBkgnd函数,其它不动,若在OnPaint函数中不调用其基类的OnPaint函数,即注释掉CDialog::OnPaint();,代码如下:void CDDDDlg::OnPaint(){ if (IsIconic()) { CPaintDC dc(this); // device context for paintin原创 2012-01-15 21:58:36 · 2223 阅读 · 0 评论 -
划船器项目第二版程序出现的问题
划船器项目第二版程序第二版程序要求:控制桨频 ,控制力量,热身用,界面美化!界面美化工作由美工承担。程序动画调整思路:第一版程序动画部分显示在picture control控件中,通过双缓冲技术。第二版程序动画部分显示当初有两种方案:a)仍然通过双缓冲技术显示在picture control控件中,同时picture control控件做透明化处理,或者将picture c原创 2013-10-07 14:29:42 · 882 阅读 · 0 评论 -
Iocomp控件
Iocomp.V3.04.SP2 手动添加plot控件的类变量参考代码:VS2005VC++ MFC Dialog Basedvc6.0 有些错误不能检查用vs2008 或者 vs2010原创 2013-10-16 17:52:24 · 2018 阅读 · 0 评论 -
利用堆栈窗口定位错误
1 错误提示:2 点击“重试”,弹出如下窗口3 点击”中断“,在vs界面上找到调用堆栈窗口,如图所示:4 由上往下,很容易看到问题出现在DoDataExchage(`````)函数中,源码如下:void CTrainDlg::DoDataExchange(CDataExchange* pDX){CDialogEx::DoDataExchange(pD原创 2013-10-17 20:35:14 · 1725 阅读 · 0 评论 -
CTransparentStatic类的使用 CButton类的使用
CTransparentStatic功能:动态透明显示,无闪烁,无重影,非常强大!1 ,添加CTransparentStatic头文件和源文件2,将CStatic m_stcStroke;改为CTransparentStatic m_stcStroke;(m_stcStroke已经与static控件关联)CButtonST功能:加载图片,移进移入效果原创 2013-10-16 18:39:37 · 1399 阅读 · 0 评论 -
error C2664: “fopen”: 不能将参数 1 从“const char [ ]”转换为“const wchar_t
CString str;str.Format("Amount Remaining $ %.2f", m_Amt_Remaining);),上VC6中上述代码没有问题,但在Visual stdio 2008中编译中有错误:错误提示:error C2664: “void ATL::CStringT::Format(const wchar_t *,...)”: 不能将参数转载 2013-10-17 20:02:32 · 5638 阅读 · 0 评论 -
win7下注册iocomp控件
1 将Iocomp包的ActiveX文件夹下的6个以ocx结尾的文件copy至C:\Windows\SysWOW642 以管理员身份登入命令提示符3 输入 cd C:\Windows\SysWOW64 切换目录4 执行 regsvr32 iPlotLibrary.ocx ,即可提示注册成功 以此类推,可依次注册相应控件原创 2013-10-18 18:51:10 · 4834 阅读 · 2 评论 -
vs2010 操作
一 编译f10:逐过程f11:逐语句f7:生成解决方案二 操作1)打不开资源视图?解决:菜单窗口,关闭所有文档。原创 2013-10-20 09:32:19 · 888 阅读 · 0 评论 -
debug assertion failed! winocc.cpp line 381
111原创 2013-10-20 10:08:08 · 5950 阅读 · 0 评论 -
实现CStatic控件的透明实现中存在的文字重叠问题
在有背景图的对话框中实现CStatic控件的透明显示常用方法是在OnCtlColor函数中设置控件的显示方式,并返回一个空画刷。( 默认在OnPaint或者OnEraseBkgnd函数中实现了对话框背景贴图。)代码如下:HBRUSH CXXXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){ HBRUSH hbr = CDi原创 2012-01-14 14:38:47 · 3803 阅读 · 1 评论 -
最近搜集的文章列表
WM_CTLCOLOR消息http://blog.csdn.net/hisinwang/article/details/8070393在每个控件开始绘制之前,都会向其父窗口发送WM_CTLCOLOR通告消息,在该消息的处理函数中,可以设置控件显示文本的前景色、背景色以及字体。该消息处理函数还要求返回一个画刷的句柄,用于在控件具体的绘制之前擦除其客户区。OnCtlColor中原创 2013-10-06 23:05:43 · 737 阅读 · 0 评论 -
InvalidateRect只是增加重绘区域,在下次WM_PAINT的时候才生效
InvalidateRect函数中的参数TRUE表示系统会在你画之前用背景色将所选区域覆盖一次,默认背景色为白色,可以通过设置BRUSH来改变背景色。Invalidate()之后:...OnPaint()->OnPrepareDC()->OnDraw()所以只是刷新在OnPaint()和OnDraw()函数中的绘图语句。其它地方没有影响。Invalidate标记一个需要重绘的无效区转载 2012-01-10 11:39:10 · 4455 阅读 · 1 评论 -
头文件相互包含的问题
一、问题描述假设有两个类A、B,若在A类里面包含B,或在B类里面包含A,则编译无法通过,任意去掉A,pA,或者B,pB,则编译通过。编译错误提示:error C2143: syntax error : missing ';' before '*'1>d:\backup\我的文档\visual studio 2008\projects\rowdemo\正在开发中~~~\rowdemo原创 2011-12-30 11:09:13 · 155 阅读 · 0 评论 -
命名规则
总体成员变量以m_开头静态变量以g_开头 指针变量:p表示 1、控件命名规则第一个英文单词(IDC)代表控件,第二个英文单词代表控件类型,第三个英文单词控件含义,如下所示:RADIO控件: IDC_RADIO_MAN IDC_RADIO_WOMENSTATIC控件: IDC_SATIC_NAMEBUTTON原创 2011-12-28 11:13:30 · 398 阅读 · 0 评论 -
vc常用知识点归类
1、模式对话框如何最大化?答:在对话框的OnInitDialog里面调用:ShowWindow(SW_MAXIMIZE); //最大化MSDN:OnInitDialog, OnOK, and OnCancel are virtual functions. To override them, you declare an overriding function in you原创 2011-12-28 09:10:50 · 1169 阅读 · 0 评论 -
模式对话框和非模式对话框销毁的不同
OnDestroy是消息响应函数:消息:WM_DESTROY 对应的响应函数:OnDestroyOnOk和OnCancel是对话框CDialog基类的成员函数。调试发现:在模式对话框下,OnOk和OnCancel都会调用EndDialog函数,然后调用OnDestroy函数,但是在非模式对话框下,OnOk和OnCancel调用EndDialog函数后,不会继续调用OnDe原创 2011-12-23 11:25:55 · 1345 阅读 · 0 评论 -
DestroyWindow函数解析
DestroyWindowMSDN上的解释:This function destroys the specified window. The function sends a WM_DESTROY message to the window to deactivate it and removes the keyboard focus from it. The function also原创 2011-12-22 14:30:08 · 7891 阅读 · 0 评论 -
两级对话框的制作
1、点击主对话框的时候隐藏主话框,同时产生非模式对话框。void CFirstDlg::OnBnClickedButton1(){ // TODO: Add your control notification handler code here this ->ShowWindow(SW_HIDE); //隐藏主对话框 ModallessDlg = new CModalles原创 2011-12-20 11:31:38 · 668 阅读 · 0 评论 -
数组越界造成的其相邻的数组的内存空间被破坏的严重问题。
今天在调试程序发现了由于数组越界造成的无法预见的错误,情况是这样的:假设在头文件中连续定义了如下两个变量m_lAiLastTime和m_fVx(为什么要连续,因为连续的定义就意味着编译器再为这两个变量分配内存空间时候也是连续地址分配的),都是7维的,使用的时候用后面5个元素,即[2]-[6]这个6个元素,第一个元素和第二个元素[0]-[1]不使用,但由于笔误将第一个变量定义成一维数组m_lAi原创 2012-02-09 10:09:44 · 891 阅读 · 0 评论 -
BioUsb-程序分析1
每个采样周期是64字节(程序中定义EP_PACKET_SIZE=64)每次ReadFile读取的数据大小是:lpBytesReturned 用lpBytesReturned除以64即得每次读取的数据包含多少个采样周期,记为n。n= lpBytesReturned/64 每个采样周期首地址 0第一个采样原创 2010-03-19 09:49:00 · 503 阅读 · 0 评论