VC++
宇宙379
C/C++,VC++
展开
-
VC6工程打不开
用VC做了一个项目,原项目原位置可以打开,一旦复制到另外一个地方或给项目改个名字就打不开了。在网上找了半天,尝试了很对方法,终于发现一个可行,记录下: 解决方法:删掉*.dsw,*.aps,*.ncb, *.opt, *.plg等文件打开打开*.dsp !原创 2012-02-19 10:45:38 · 1798 阅读 · 0 评论 -
VC如何更改单文档应用程序的标题
1·文档标题的改变 文档标题在是由工程中相应的文档类所控制的,我们可做如下实验。运行AppWizard生成的程序SDITitle,选择选单中的“文件”“打开”选项,打开“SDITitile.h”文件,则标题栏变成“SDITitle.h - SDITitle”。这一切动作都是MFC类自动进行的。了解这一点,我们可在相应的文档类中,利用SetTitle函数来改变文档标转载 2012-11-28 14:35:34 · 5957 阅读 · 0 评论 -
VC程序Debug版本和Release版本运行不一致问题
最近写了个VC小软件,调试发现debug和release下运行结果不一致。 查了半天发现好像是new的堆内存未释放导致的问题(不确定,但是delete []buf;后不一致问题解决了)。 第一次发现这个问题,特意记录下。 网上搜索的其他可能导致不一致的情况: 1. 对变量的初始化不一致或未初始化。例如,char字符串匹配,在Debug正常,而Release原创 2012-09-24 16:07:24 · 2461 阅读 · 0 评论 -
VC6操作Excel2003
1. 新建Appwizard(exe),基于对话框;2. 打开MFC ClassWizard窗口(查看—>建立类向导),选择Automation,单击Add Class按钮,选择From a type library...,弹出文件选择对话框,之后定位到Microsoft Office的安装目录(通常为C:\Program Files\Microsoft Office\Office),选择EX原创 2012-11-22 11:07:12 · 2480 阅读 · 2 评论 -
VC2010中tab control 使用
1.新建一个MFC工程, 取名MyTab, 选择Dialogbased, 然后Finish. 2. 删除对话框上默认添加的三个控件. 添加Tab Control控件并在Property属性中设置ID为IDC_TABTEST 在More Styles里勾上Bottom. 调速尺寸使其布满整个对话框, 我这边Tab Control的尺寸最后为164X203. 在ClassWizard为其转载 2012-07-30 15:30:23 · 4116 阅读 · 2 评论 -
VC问题
状况: 程序与硬件调试时退出而不报错。 原因: 串口接收的数据太多,一个包8000多字节。不能一次性频繁点击发送。应该等待数据接收完毕后再点击。 解决方法:点击一次后,将按钮设为unable(GetDlgItem(IDC_btnSEND)->EnableWindow(false); ),数据接收完毕后再设为able。(GetDlgItem(IDC_btnSEND)->Enab原创 2011-10-24 18:57:49 · 511 阅读 · 0 评论 -
静态库和动态库的区别
lib和dll文件的区别和联系 .dll是在你的程序运行的时候才连接的文件,因此它是一种比较小的可执行文件格式,.dll还有其他的文件格式如.ocx等,所有的.dll文件都是可执行的。 .lib是在你的程序编译连接的时候就连接的文件,因此你必须告知编译器连接的lib文件在那里。一般来说,与动态连接文件相对比,lib文件也被称为是静态连接库。当你把转载 2012-11-28 14:53:49 · 601 阅读 · 0 评论 -
VC 开机自动启动程序代码
最好的还是快捷键+启动文件夹的方式,这样尽量不更改太多系统注册表。 很多监控软件要求软件能够在系统重新启动后不用用户去点击图标启动项目,而是直接能够启动运行,方法是写注册表Software\\Microsoft\\Windows\\CurrentVersion\\Run。参考程序可以见下:(查找程序目录的执行文件,存在则进行添加注册表操作) //实用代码一int C***D转载 2012-05-21 16:31:26 · 693 阅读 · 0 评论 -
vc生成静态库
1创建静态库 要创建静态库,选择File->New菜单,弹出New对话框。选择Projects标签,在项目类型列表框中选择Win32 Static Library,在Name中输入MyLib,表明要创建一个MyLib.lib的静态库文件,下一步什么也不选,直接完成。2.加入一个头文件(1234.h),里面加入代码 #ifndef _MYMATH_H #define _MYM转载 2012-12-08 11:55:42 · 839 阅读 · 0 评论 -
十年MFC经历认识的Microsoft技术
很久没有技术性的文章了,当然这是因为转到博客园的缘故了,其实这些天都有不少感触,但是却实在懒得敲键盘,所以只好东拉西扯了~,现在技术实在发展的太快,MFC虽仍旧是Windows桌面开发的主力军,但是却不太受到大众的追捧,我现在正朝着.NET 2.0的方向发展,但无奈.NET 3.0却早已发布,3.5更是蓄势待发,WPF/E和Linq更是满天飞,所以这时才发现自己的无能和步履蹒跚,但是我已经选择了自转载 2012-12-08 14:33:38 · 805 阅读 · 0 评论 -
VC进制转换(二进制-十进制-十六进制)
由于工作中经常要用到进制转换,于是写了几个函数://10->2CString DecimalToBin(int iDecimal){char c[20];_itoa(iDecimal, c, 2 );CString str(c);return str;}//10->16CString DecimalToHex(int iDecimal){char原创 2012-12-12 16:43:46 · 7909 阅读 · 0 评论 -
bat批处理自删除
今天突然发现bat可以自删除,惊讶之余很惭愧,现在才知道!不过我平时很少用bat批处理的。 del reg.bat网络的: ////////////////////////////////////////////////////////////////////////////////////////del %0 以及一些调用cmd的删除方法是错误的原因在于exe原创 2012-12-19 22:11:16 · 8451 阅读 · 0 评论 -
VC闪屏振动
闪屏振动的原理其实很简单,创建一个线程,在线程中MoveWindow或SetWindowPos即可。 核心代码: #include "mmsystem.h"#pragma comment(lib,"winmm.lib")UINT ShakeThread(LPVOID pParam);int m_nXStrength(5),m_nYStrength(5);void C原创 2012-12-19 22:26:34 · 849 阅读 · 0 评论 -
枚举串口四法
串口作为最基本的电脑通信 I/O 接口,其使用虽然在 PC 上越来越少,但是在工业仪器领域仍然用的相当普遍,由于笔者工作中需要用到串口,而且发现枚举串口至今仍未搞得很清楚,为此自己先整理下,希望大侠和同行们对我不懂和错误的地方指点一下。 1 、查询注册表查询注册表的方法是网上见到的比较常见的方法,该方法就是使用编程方法读取注册表内信息,相当于用户通过在运行框内输入 ”regedit”(转载 2012-12-21 16:22:16 · 587 阅读 · 0 评论 -
MFC中CImageList的使用
图像列表控件(CImageList)是相同大小图像的一个集合,每个集合中均以0为图像的索引序号基数,(可以把这些图标看成是以数组方式存储的),图像列表通常由大图标或位图构成,其中包含透明位图模式(实际上,所有的再一个图像列表中的图标都被存储在一个屏幕设备的位图中)。可以利用windows API来绘制、建立和删除图像,并能实现增加、删除、替换和拖动图像邓操作。图像列表控件提供了控制图像列表额基转载 2012-12-21 16:26:00 · 679 阅读 · 0 评论 -
vc消息大全
hwnd 32位的窗口句柄。窗口可以是任何类型的屏幕对象,因为Win32能够维护大多数可视对象的句柄(窗口、对话框、按钮、编辑框等)。message 用于区别其他消息的常量值,这些常量可以是Windows单元中预定义的常量,也可以是自定义的常量。wParam 通常是一个与消息有关的常量值,也可能是窗口或控件的句柄。lParam 通常是一个指向内存中数据的指针。由于WParam、lPar转载 2013-01-25 19:25:16 · 618 阅读 · 0 评论 -
略谈teechart
VC,BCB下的曲线图形显示可以自己编写代码,主要是GDI(+)的WinAPI函数,主要是MoveTo和LineTo等函数,自己编写很繁琐。 最好是用第三方控件,当然VC高版本也提供了MsChart,很强大,本人在C#里用过,主要是C#效率不高,编写的程序太大,还是用VC了.第三方控件有ntGraph,优点是小巧,只有几个类,缺点不能缩放等;而teechart则给出强大,但是他比较庞大,有原创 2013-07-10 20:20:25 · 4958 阅读 · 2 评论 -
ScreenToClient和ClientToScreen
我们知道,显示器只是一个显示根据,它以像素为单位,一个像素就是一个点。显示器的分辨率就代表了它的像素个数,比如我的电脑分辨率是:1024*768。如下图:图1就是说我的显示器有768行,1024列。其中每行1024个像素,每列768个像素。显示屏幕有一个屏幕的坐标系,它的左上角坐标为原点(0,0),原点向下为正,向右为正,它的右下角坐标为为(1024,768),如下图:图2原创 2014-09-05 22:09:59 · 3161 阅读 · 0 评论 -
VC获取屏幕上任意点的颜色
void CGetColorDlg::OnTimer(UINT nIDEvent) {CPoint point;GetCursorPos(&point);HDC hDC = ::GetDC(NULL); COLORREF colorref = ::GetPixel(hDC, point.x, point.y);//Get the cursor color ::R原创 2014-09-05 21:34:14 · 6965 阅读 · 0 评论 -
Windows 窗口样式
WS_BORDER创建具有边框的窗口。WS_CAPTION 用于创建具有标题栏的窗口(即表示 WS_BORDER 样式)。 不能与 WS_DLGFRAME 样式一起使用。WS_CHILD 用于创建子窗口。 不能与 WS_POPUP 样式一起使用。WS_CHILDWINDOW 和 WS_CHILD 样式相同。在父窗口中绘图时,WS_CLIPCHILDR转载 2014-09-06 21:30:41 · 1330 阅读 · 0 评论 -
Modeless Dialogs with MFC
IntroductionModeless dialog boxes have often puzzled newbie programmers. Basically a modeless dialog box is one that allows us to interact with other windows even when the modeless dialog is still转载 2014-09-12 21:14:14 · 1422 阅读 · 0 评论 -
CFileDialog文件多选
void CTestDlg::OnButton1() {#define MAX_CFileDialog_FILE_COUNT 99#define FILE_LIST_BUFFER_SIZE ((MAX_CFileDialog_FILE_COUNT * (MAX_PATH + 1)) + 1)CString fileName;char* p = fileName.GetBuf原创 2014-09-02 22:26:51 · 1302 阅读 · 0 评论 -
VC 定时提醒自己休息
VC 建立一个windows应用程序 (非对话框的),每过30分钟(可随意修改)提醒自己休息一下,非常非常简单:// Hide.cpp : Defines the entry point for the application.//#include "stdafx.h"#include "resource.h"#define MAX_LOADSTRING 100// Glo原创 2014-11-29 22:57:42 · 762 阅读 · 0 评论 -
VC Socket网络通信
1. 与对方通信,第一你必须知道与谁通信,即对方的名字,对于计算机来说就是主机名或IP地址;第二双方必须遵守约定的规则,不能一个讲英语,一个讲汉语,即通信协议必须遵守,(TCP/IP),多个应用程序,每个均有一个端口号。IP地址相当于一个公司的总机号码,端口号相当于分机号码。2. 分层,物理层,数据链路层,网络层,传输层,应用层,,,3. 应用层协议:Telnet,FTP,HTTP,DNS原创 2015-03-21 09:34:28 · 2343 阅读 · 0 评论 -
VC 多线程编程
VC多线程中需要熟悉的知识点是:1. 进程和线程的概念;2. 如何通过WinAPI,MFC两种方式创建线程;3. 线程传参数,包括简单参数和结构体复杂参数;4. MFC线程分为用户界面线程和工作者线程,两种之间的区别和创建方式是什么;5. 线程间的通信分为几种,具体怎么实现;6. 线程之间的同步方式有几种,具体怎么实现;1. 进程和线程的概念;程序是计算机指令的集合原创 2015-03-21 09:28:28 · 960 阅读 · 0 评论 -
VC 计算器
在百度知道上逛逛,看到有个人要求个原创 2014-09-06 21:01:30 · 1132 阅读 · 0 评论 -
VC 读写Excel (第三方类CSpreadSheet)
1. 用VC6新建一个基于对话框的项目;2. 添加 CSpreadSheet.h,CSpreadSheet.cpp到项目中;3. 在C*Dlg.h 中添加 : #include "CSpreadSheet.h"4. 添加对应的读写函数5. 读非常简单:CSpreadSheet SS("test.xls","数据");CStringArray Cols[26];//26列原创 2015-04-01 20:52:55 · 2654 阅读 · 0 评论 -
String 构造,析构,复制,拷贝构造函数
class String{public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数 String &转载 2015-04-02 19:06:00 · 486 阅读 · 0 评论 -
SQL
增删改查SELECT LastName FROM Persons 表包含带有数据的记录(行)。查询和更新指令构成了 SQL 的 DML 部分: SELECT - 从数据库表中获取数据 UPDATE - 更新数据库表中的数据 DELETE - 从数据库表中删除数据 INSERT INTO - 向数据库表中插入数据SELECT 列名称 FROM 表名称 SELEC原创 2015-04-01 21:02:41 · 465 阅读 · 0 评论 -
VC失误
自己犯过相同的错误两次以上了!嘱与作文以记之!double fNum;CString str;...str.Format("%.2f",fNum); //本来应该这样str.Format("%d",fNum); //我写成这样了找了几分钟才发现问题。原创 2015-04-01 20:51:15 · 516 阅读 · 0 评论 -
VC 改变对话框某一区域颜色
1. 在OnPaint中添加代码:void CXXXDlg::OnPaint() {if (IsIconic()){CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);// Center icon原创 2015-04-09 18:50:05 · 1619 阅读 · 0 评论 -
VC 三线程顺序打印ABC
1.新建一个基于对话框的应用程序2.在主对话框类中添加以下代码:volatile int flag=1;volatile bool bRun=true;CRITICAL_SECTION g_cs;//关键代码段,临界区UINT A(LPVOID p){ while(bRun){ EnterCriticalSectio原创 2015-04-20 16:39:26 · 832 阅读 · 0 评论 -
VC不提示警告
编写代码经常有很多警告,有些需要注意,但大多数不需要注意。禁止提示警告:#pragma warning (disable:4244)这个挺好用的。原创 2015-05-20 10:10:33 · 975 阅读 · 0 评论 -
SetItemSize
CTabCtrl::SetItemSize 设置项目的宽度和高度。 都不需重绘。原创 2015-05-27 17:31:12 · 1399 阅读 · 0 评论 -
VCenterEdit 可以垂直显示
可以设置文字大小,颜色,比较好用。原创 2015-05-27 11:09:37 · 640 阅读 · 0 评论 -
开源库glog使用
windows下:1, 下载地址: https://github.com/google/glog点击Download ZIP 下载即可。2. 解压,打开google-glog.sln 编译,生成debug下的lib和dll文件;3. 将新建一个基于console 的demo工程,将lib和dll 拷贝到工程下,将windows目录下的glog头文件拷贝到工程下(目录一起原创 2015-05-26 16:21:46 · 6177 阅读 · 0 评论 -
对话框加载bmp为背景
void CXXXDlg::OnPaint(){// CPaintDC dc(this); // device context for painting CPaintDC dc(this); CRect rect; GetClientRect(&rect); CDC dcMem; dcMem.CreateCompatibleDC(&dc); CBit原创 2015-05-27 09:17:32 · 604 阅读 · 0 评论 -
子Tab中按钮进入其他子tab页面
#include "MyTabDlg.h" void CPara1::OnBnClickedButton1(){ ShowWindow(false); ((CMyTabDlg *)(GetParent()->GetParent()))->m_page2.ShowWindow(true); ((CTabCtrl*)GetParent())->SetCurSel(1); }原创 2015-05-27 18:58:46 · 1033 阅读 · 0 评论 -
CWnd与HWND的区别与转换
一、区别HWND是句柄,CWnd是MFC窗体类,CWnd中包含HWND句柄成员对象是m_hWnd.HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。 CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装到了这个类中,如:ShowWindow等等,同时它也封装了窗口句柄即m_hWnd成员。二、如何得到窗口对象指针C转载 2015-05-28 09:36:14 · 436 阅读 · 0 评论 -
VS 圆角矩形效果
#if defined _M_IX86#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df'原创 2015-05-26 17:12:04 · 1285 阅读 · 0 评论