DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年11月23日

摘要: 摘要: 本文主要对VC++ 6.0的MFC编程方法及MFC应用程序框架进行简要介绍。 关键词: VC++6.0;MFC;程序框架 1 MFC概述 顾名思意,MFC应用程序框架是以MFC作为框架基础的,以此程序框架模式搭建起来的应用程序在程序结构组织上是完全不同于以前的Win32 SDK编程方式的。自20世纪90年代初问世以来,MFC一直试图把Windows API函数封装到类库中个各个逻辑类中。MFC的这种封装并非简单地对API函数进行分组与打包,而是更多地通过类来试图实现全部的系统策略。随着越来越多系统功能的加入,MFC的规模也在不断拓展,目前已包括有200多个类,涵盖了通用Windo... 阅读全文
posted @ 2012-11-23 20:43 DoubleLi 阅读(1091) 评论(0) 推荐(0)

摘要: 对于程序员来说,如果要提高编程效率,一个好用的,功能强大的并且可以得心应手使用的编程工具往往会给我们程序员带来莫大的方便。其实对于现在的编程工具来说,使用哪一种工具都不是问题的关键,重要的是你能够使用到什么程度,毕竟现在的工具都是非常的强大,对于一般的编程任务来说还没有不能够胜任的工具,否则的话恐怕他就不可能在这个世界上存在哪怕是只有一个月的生命。 但是根据个人所好以及周围的人的影响,我们都会去使用某一种或者几种工具。比较Visual Basic 、C++ Builder和Delphi等编程工具,用VC++编写Windows应用程序可以说是最富于挑战性和艰巨性。在本文中我无意去比较各种工具的好 阅读全文
posted @ 2012-11-23 20:41 DoubleLi 阅读(4665) 评论(0) 推荐(2)

摘要: 我们在调用WINDOWS函数的时候,经常要在后面加一条GetLastError()来取得函数出错的错误码以及原因,如果在调试的状态中,WINAPI出错了,那我们又要停下来,加一句GetLastError(),然后再跑。这样调试起来很不方便。其实我们可以使用VC里的一些固定符号来进行调试。下面说一下第一个@ERR,我们等函数执行完,并确定它出错了,那我们就可以在VC 的 WATCH窗口里加上@ERR,那我们就马上可以看到出错的错误码了。如果我们还想知道错误码的意思,那我们可以加上@ERR,hr,这样错误码和出错信息都清清楚楚的显示出来了。这个调试方法是不是很棒?其实这种伪符号还有一个用处,在我们 阅读全文
posted @ 2012-11-23 20:37 DoubleLi 阅读(510) 评论(0) 推荐(1)

摘要: 随着计算机网络化的深入,计算机网络编程在程序设计的过程中变得日益重要。许多文章都曾经介绍过用VC++进行Socket编程的方法。但由于都是直接利用动态连接库wsock32.dll进行操作,实现比较繁琐。其实,VC++的MFC类库中提供了CAsyncSocket这样一个套接字类,用它来实现Socket编程,是非常方便的。 客户端 创建一个Dialog Based项目:CSockClient。设计一对话框,增加ID_Connect(连接)、ID_Send(发送)、ID_Exit(关闭)按钮,增加ListBox控件IDC_LISTMSG和Edit控件IDC_EDITMSG,并按下表在Class... 阅读全文
posted @ 2012-11-23 20:34 DoubleLi 阅读(573) 评论(0) 推荐(0)

摘要: Windows编程中一个比较原始的问题就是消息循环,现在很少有人关心这些了; 我个人对消息循环比较感兴趣,对底层的很多细节想深入了解! 以下说明几个消息循环中的常用函数进行对比 1 PostMessage 与 SendMessage 函数对比 SendMessage把消息直接发送到窗口,并调用此窗口的相应消息处理函数,等消息处理函数结束后SendMessage才返回!SendMessage发送的消息不进入系统的消息队列;SendMessage函数有返回值 PostMessage将消息发送到与创建窗口的线程相关联的消息队列后立即返回;PostMessage函数没有返回值; 2 Ge... 阅读全文
posted @ 2012-11-23 20:32 DoubleLi 阅读(561) 评论(0) 推荐(0)

摘要: 消息映射、循环机制是Windows程序运行的基本方式。VC++ MFC 中有许多现成的消息句柄,可当我们需要完成其它的任务,需要自定义消息,就遇到了一些困难。在MFC ClassWizard中不允许添加用户自定义消息,所以我们必须在程序中添加相应代码,以便可以象处理其它消息一样处理自定义消息。通常的做法是采取以下步骤: 第一步:定义消息。 推荐用户自定义消息至少是WM_USER+100,因为很多新控件也要使用WM_USER消息。#define WM_MY_MESSAGE (WM_USER+100) 第二步:实现消息处理函数。该函数使用WPRAM和LPARAM参数并返回LPESULT。 ... 阅读全文
posted @ 2012-11-23 20:18 DoubleLi 阅读(311) 评论(0) 推荐(0)

摘要: 如果要编写模块化的软件,就要对对动态链接库(DLL)有一定的了解,本人这段时间在修改以前的软件时,决定把重复用的类和对话框做到DLL中,下面就从一个简单的例子讲起,如何实现MFC扩展DLL中导出类和对话框。 一、创建MFC扩展DLL 步骤: 运行Visual Studio 6.0->File->New...->Projects; 选择Mfc AppWizard(dll),在右边Project name下输入ExportClass,单击“下一步”; 选择Mfc Extension DLL (using share MFC DLL) 单击“finish”; 以上完成建立扩展D.. 阅读全文
posted @ 2012-11-23 19:49 DoubleLi 阅读(331) 评论(0) 推荐(0)

摘要: 数据库建模,我们一般都是有PowerDesigner,可它毕竟是盗版的,呵呵,用着心里不大踏实。今天在网上找了一下,发了一个叫Open System Architect的免费软件。功能就不用说了,和PD差不多。下面我们看看它的截图。逻辑模型物理模型SQL编辑器这个SQL编辑器,好像比PD的要好用一些。下载地址:http://www.codebydesign.com/SystemArchitect/downloads/OpenSystemArchitect-4.0.0-XP-32bit.zip 阅读全文
posted @ 2012-11-23 18:38 DoubleLi 阅读(10943) 评论(2) 推荐(1)

摘要: CString->TCHAR*的转化可以用函数GetBuff()函数原型为:LPTSTR GetBuffer( int nMinBufLength );CString str("CString");TCHAR* szMsg = new TCHAR[100];//其参数为CString字符串的长度szMsg = str.GetBuffer(str.GetLength());str.ReleaseBuffer();delete []szMsg;szMsg = NULL;TCHAR*->CString的转化TCHAR szTchar[18] = L"TCHA 阅读全文
posted @ 2012-11-23 18:37 DoubleLi 阅读(1070) 评论(0) 推荐(0)

摘要: 简介 摘要:关于VC中的数据类型转换BSTR、char*和CString的深入研究。 步骤/方法 char*转换成CString 若将char*转换成CString,除了直接赋值外,还可使用CString::Format进行。例如: char chArray[] = "This is a test"; char * p = "This is a test"; 或 LPSTR p = "This is a test"; 或在已定义Unicode应的用程序中 TCHAR * p = _T("This is a test" 阅读全文
posted @ 2012-11-23 18:36 DoubleLi 阅读(557) 评论(0) 推荐(0)