自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(35)
  • 收藏
  • 关注

原创 链接错误LNK2001

学习VC++时经常会遇到链接错误LNK2001,该错误非常讨厌,因为对于     编程者来说,最好改的错误莫过于编译错误,而一般说来发生连接错误时,     编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不     明其所以然。如果不深入地学习和理解VC++,要想改正连接错误LNK2001非     常困难。       初学者在学习VC++的过程中,遇到的LNK2001

2008-12-04 09:31:00 479

原创 尝试打包

 启动InstallShield6.3后,见下图选“New Project”按钮,打开新工程一般选“Project Wizard”,工程向导。在下面添上工程的名字添上工程的基本信息选择语言。由于没有其它的语言包,所以只有English可选。语言包需要另行购买选择组件。有的程序允许选择安装一部分或全部的程序按照需要的文件夹添加进去。选择文件组。

2008-10-31 17:11:00 516

原创 InstallShield6.3 使用指南

 启动InstallShield后,见下图选“New Project”按钮,打开新工程一般选“Project Wizard”,工程向导。在下面添上工程的名字添上工程的基本信息选择语言。由于没有其它的语言包,所以只有English可选。语言包需要另行购买选择组件。有的程序允许选择安装一部分或全部的程序你可以按“Rename”修改组件

2008-10-31 14:24:00 1613

原创 使用manifest实现XP风格界面

关于让自己的程序界面实现XP风格这个问题,在网上的讨论很多,大多数的作法都是写一个.manifest文件,然后将文件名改一下,比如.exe文件为test.exe,就将这个.manifest文件改名成test.exe.manifest,并将其和test.exe放在同一个目录里,这样test.exe在XP或2003(必须启动Themes服务)下运行时就会呈现XP界面风格。有件事情必须说一下,按照上

2008-10-24 16:49:00 3352 1

原创 MFC如何高效地绘图

MFC如何高效地绘图         [   作者:   TouchMe       添加时间:   2001-12-25   8:21:34   ]                         显示图形如何避免闪烁,如何提高显示效率是问得比较多的问题。     而且多数人认为MFC的绘图函数效率很低,总是想寻求其它的解决方案。     MFC的绘图效率的确不高但也不差,而且它的绘图函数使用非

2008-10-24 16:48:00 1036 1

原创 防止对话框因ESC和ENTER键输入关闭的两种途径

按OK或ESC键时,MFC会分别调用基类的OnOk()和和OnCancel()函数。CDialog中这两个方法的的缺省行为将调用EndDialog结束对话框。一下两个方法将防止这种情况发生(1)重载对话框类的OnOk()和OnCancel()方法就可以了。新建的对话框没有删除OK和CANCEL按钮的情况下,直接给它们增加CLICK消息进行重载,将 CDialog::OnOK(); 和 CDia

2008-10-23 14:44:00 1181

原创 MFC应用程序中指针的使用

MFC应用程序中指针的使用 1) 在View中获得Doc指针 2) 在App中获得MainFrame指针 3) 在View中获得MainFrame指针 4) 获得View(已建立)指针 5) 获得当前文档指针 6) 获得状态栏与工具栏指针 7) 获得状态栏与工具栏变量 8) 在Mainframe获得菜单指针 9) 在任何类中获得应用程序类 10) 从文档类取得视图类的指针(1) 11) 在Ap

2008-10-23 12:38:00 383

原创 VC使用位图和图标制作按钮

位图按钮的实现方法:      首先,我们创建一个基于对话框的应用程序CmyDialog    ;      Ι.MFC的CBitmapButton类,这也是最简单的功能最强的位图按钮。我们可以采取如下的步骤:      1. 为按钮指定唯一的按钮标题(此例子为OK按钮,这里设置按钮标题为OK)并选中Ownerdraw属性,然后在项目中加一些位图资源,并用名字标示这些资源而不要用数字ID,其ID分

2008-10-22 17:14:00 1082

原创 给对话框添加菜单 工具栏 状态栏简易方法

先建立一个基于Dialog 的程序,我给他起了个名字叫:DlgMenuToolbar。一、如何往基于Dialog的程序添加菜单[1.1] 先添加菜单(IDR_MENU1)资源,并加上需要的菜单项。[1.2] 编辑对话框资源IDD_DLGMENUTOOLBAR_DIALOG的属性,在属性对话框中选择IDR_MENU1即可。 [1.3] 假如您不希望在对话框属性中直接设置菜单,而通过代码在程序中动态生

2008-10-17 16:23:00 6493 2

原创 SendMessage进程间简单通信问题

本例以两个VC Dialog application 为例用SendMessage进行两进程间简单通信:主要API:FindWindow(LPCTSTR lpClassName,    LPCTSTR lpWindowName  )//通过进程名得到进程handle SendMessage(UINT message, WPARAM wParam = 0, LPARAM lParam =

2008-10-15 11:14:00 1237 1

原创 浅谈内存泄漏(二)

 检测内存泄漏: 检测内存泄漏的关键是要能截获住对分配内存和释放内存的函数的调用。截获住这两个函数,我们就能跟踪每一块内存的生命周期,比如,每当成功的分配一块内存后,就把它的指针加入一个全局的list中;每当释放一块内存,再把它的指针从list中删除。这样,当程序结束的时候,list中剩余的指针就是指向那些没有被释放的内存。这里只是简单的描述了检测内存泄漏的基本原理,详细的算法可以参见Steve

2008-10-06 15:22:00 455

原创 浅谈内存泄漏(一)

  对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经比较

2008-10-06 15:16:00 405

原创 关于volatile 变量

 一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份。下面是volatile变量的几个例子:     1)   并行设备的硬件寄存器(如:状态寄存器)     2)   一个中断服务子程序中会访问到的非自动变量(Non-automatic

2008-09-19 15:33:00 676

原创 VC生成word文档的部分代码

 protected://变量_Application  wordApp;    Documents  wordDocs;    _Document  wordDoc;    Selection  wordSelection;    Range   wordRange;    Tables  wordTables;    Table   wordTable;           Cell  

2008-09-03 16:57:00 4424 1

原创 MSWORD常量定义

 // MSWORD常量定义// 对做MSWORD的朋友有帮助了,不用做个宏,打个MsgBox看是什么了。//*************************************************************// WdAlertLevel #define wdAlertsNone  0#define wdAlertsMessageBox  -2#define wdAle

2008-09-03 16:55:00 3616 3

原创 VC操作Word系列(四)

 随笔之:VC操作Word系列(四) 上一回讲了如何合并单元格,这次来说说如何填充单元格以及如何对合并后的单元格的内容让他居中显示这样能够看得舒服一点:)。代码如下所示: void CWordTestDlg::TestWord4(){_Application app;COleVariant vTrue((short)TRUE),       vFalse((short)FA

2008-09-03 16:54:00 917

原创 VC操作Word系列(二)

 随笔之:VC操作Word系列(二) 大家都应该使用过Word提供的表格功能很是专业,如果在作一些数据库开发之类的软件对汇总的数据进行打印是常见的功能,这个如果用Word来实现个人感觉不错,废话少说说练咱就练。 void CWordTestDlg::TestWord2(){_Application app;COleVariant vTrue((short)TRUE),   

2008-09-03 16:53:00 1245

原创 VC操作Word系列(三)

 随笔之:VC操作Word系列(三) 上一篇说了如何制作一个简单的表格,在实际应用中会发现表格的种类很多其中对于单元格要求合并的情形很多,这样出来的表格比较专业让客户看起来也很是舒服,不喔喔了看看下面的代码就全明白了。 void CWordTestDlg::TestWord3(){_Application app;COleVariant vTrue((short)TRUE)

2008-09-03 16:53:00 948

原创 VC操作Word系列(一)

  随笔之:VC操作Word系列(一) 近日作一个小东西涉及到对汇总结果的打印,由于打印只在一台特定的机器进行所以考虑使用Word来实现,这样比较简单而且很专业。开始的时候这个东西没有这项功能后来我闲的无聊看看是否可以实现(以前从来没有做过这方面的东西),于是乎搞了一下也不是很难,一点心得大家给指点一二,使用的是Office2000,工程类型是MFC的对话框。先看看需要使用到的东东: 1.

2008-09-03 16:51:00 574

原创 VC常见的108个问题

 VC常见的108个问题(1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化. (2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名

2008-09-03 16:48:00 1013

原创 如何用SendMessage()函数传递字符串

 如何用SendMessage()函数传递字符串     -----------------------------     一、两个参数都带字符串的形式:         void   CAaaDlg::OnButton1()       {             char*   p1   =   "Willis";             char*   p2   =   "VCHelp

2008-09-03 16:47:00 9802 1

原创 Win32环境下动态链接库(DLL)编程原理

                         Win32环境下动态链接库(DLL)编程原理 比较大应用程序都由很多模块组成,这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的工作。其中可能存在一些模块的功能较为通用,在构造其它软件系统时仍会被使用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用程序EXE文件中,会产生一些问

2008-09-03 16:46:00 534

原创 调用DLL有两种方法(静态调用和动态调用)简介

 调用DLL有两种方法:静态调用和动态调用. (一).静态调用其步骤如下: 1.把你的youApp.DLL拷到你目标工程(需调用youApp.DLL的工程)的Debug目录下; 2.把你的youApp.lib拷到你目标工程(需调用youApp.DLL的工程)目录下; 3.把你的youApp.h(包含输出函数的定义)拷到你目标工程(需调用youApp.DLL的工程)目 录下; 4.打开你的目标工

2008-09-03 16:45:00 674

原创 用CfileFind递归搜索目录

  用CfileFind递归搜索目录    我们知道CfileFind未提供直接遍历其子目录的功能,而有时候我们却常常要遍历某一目录下的所有文件及其子目录。如我们要删除一个目录,而这个目录下又有子目录,因为Windows不允许删除非空的目录,因此我们必须能够遍历一个目录下的所有子目录,这可以通过简单的递归实现.   下面让我们从一个简单的

2008-09-03 16:44:00 578

原创 CListCtrl使用技巧

 CListCtrl使用技巧 zz  以下未经说明,listctrl默认view 风格为report1. CListCtrl 风格      LVS_ICON: 为每个item显示大图标      LVS_SMALLICON: 为每个item显示小图标      LVS_LIST: 显示一列带有小图

2008-09-03 16:43:00 408

原创 ini学习

 ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值,而这只要借助几个函数即可完成。 一、向ini文件中写入信息的函数 1. 把信息写入系统的win.ini文件

2008-09-03 16:42:00 757

原创 对多个控件同时做同样的操作的解决办法

  在使用vc/mfc编程时常碰到要对多个控件同时做同样的操作的情况,特别是你想使某些控件同时禁用或同时隐藏某些控件等。这时你一般可以有如下选择:1.     你可以给每个控件映射控制类型的变量,然后逐个对它们进行操作,这显然会在对话框类实例化时多占用用来存放成员变量的内存;2.     你也可以通过getdlgitem函数得到来得到控件的窗体指针来逐个操作,而这除了占用指针内存外,遇

2008-09-03 16:40:00 3081

原创 VC6.0中如何改变对话框的背景颜色

  VC6.0中如何改变对话框的背景颜色黄基前(广西桂林)---- 笔者曾在《软件报》2000年第5期中讨论过如何改变控件的颜色,但还有相当一部分的读者来信提问:一个基于对话框的MFC AppWizard应用程序中,如何改变对话框的背景颜色呢?对于这个问题,其实可以由几种不同的方法来实现,具体如下(粗斜体代码为增添的): ---- 方法一:调用CWinApp类的成员函数SetDialogB

2008-09-03 16:39:00 850 1

原创 Visual C++ 中操纵 MS Word

 Visual C++ 中操纵 MS Word 123作者:杨老师源代码下载  使用VC编程来操纵Office。你可以实现诸如:Word文件打印、传送数据到Word文档、发送E-MAIL、自动产生表格、Excel数据统计、圆饼图,直方图显示、自动报表生成、播放幻灯、doc,txt,HTML,rtf文件转换、中文简繁体转换、拼音或笔画排序......只要是Office能够实现

2008-09-03 16:38:00 811

原创 VC多线程编程(二)

 例程6 MultiThread6建立一个基于对话框的工程MultiThread6,在对话框IDD_MULTITHREAD6_DIALOG中加入一个按钮IDC_UI_THREAD,标题为“用户界面线程” 右击工程并选中“New Class…”为工程添加基类为CWinThread派生线程类CUIThread。 给工程添加新对话框IDD_UITHREADDLG,标题为“线程对话框”。 为对话框

2008-09-03 16:37:00 530

原创 VC多线程编程(一)

一、问题的提出编写一个耗时的单线程程序:  新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond() {Sleep(6000); //延时6

2008-09-03 16:36:00 967 1

原创 VC的IDE使用技巧大全

 opt   工程关于开发环境的参数文件。如工具条位置等信息;           .aps   (AppStudio   File),资源辅助文件,二进制格式,一般不用去管他.           .clw   ClassWizard信息文件,实际上是INI文件的格式,有兴趣可以研究一下.有时候ClassWizard出问题,手工修改CLW文件可以解决.如果此文件不存在的话,每次用ClassW

2008-09-03 16:33:00 441

原创 public protected private区别

 第一:private,public,protected方法的访问范围. private: 只能由该类中的方法访问,不能被该类的对象访问. protected: 可以被该类中的方法和其友元函数访问,但不能被该类的对象访问 public: 可以被该类中的方法和其友元函数访问,也可以由该类的对象访问 第二:类的继承后方法属性变化: 使用private继承,父类的所有方法在子类中变为private; 使

2008-09-03 16:32:00 421

原创 Virtual-Key Codes

 The following table shows the symbolic constant names, hexadecimal values, and mouse or keyboard equivalents for the virtual-key codes used by the system. The codes are listed in numeric order. C

2008-09-03 16:27:00 307

原创 内存对其之#pragma pack

  pack(1)时,按一字节对齐,这样     struct   Size{     char   c1;       //占1个字节     int   i1;         //占4个字节     float   f1;     //占4个字节     double   d1;   //占8个字节     }   ;     一共17字节         pack(2)时,按二字节对齐

2008-09-03 16:27:00 311

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除