- 博客(28)
- 收藏
- 关注
原创 使用VC开发程序经验谈(三)
三:建立读AutoCAD字体文件类 该部分由CShapeInfo读AutoCAD字体文件,该部分没有太多可以涉及到的知识面,只要知道AutoCAD字体文件格式即可,因此不作具体说明。 本程序代码全部在http://bluebohe.go.nease.net/readshx.rar,有需要者欢迎下载,下载请通知我mailto:bluebohe@tom.com?subjec
2004-04-16 10:07:00
2777
1
原创 一个手工读写INI文件的类(二)
(读者可以点击这里获得源代码,注意解压后将boot.ini拷贝到E:/,以便程序运行找到文件)头文件CfgData.h// CfgData.h: interface for the CCfgData class.////////////////////////////////////////////////////////////////////////#if !defined(AFX
2004-04-07 16:26:00
3589
3
原创 VC调试入门 作者:阿荣
概述调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。这里我简要的根据自己的经验列出调试中比较常用的技巧,希望对大家有用。本文约定,在选择菜单时,通过/表示分级菜单,例如File/Open表示顶级菜单File的子菜单Open。 设置为了调试一个程序,首先必须使程序中包含调试信息。一般情况下,一个从AppWizard创
2004-04-05 23:39:00
4439
1
原创 VC常见入门问题总结(三)
1. 如何改变窗口的图标? 向窗口发送 WM_SECTION消息。 Example: HICON hIcon=AfxGetApp() ->LoadIcon(IDI_ICON); ASSERT(hIcon); AfxGetMainWnd() ->SendMessage(WM_SECTION,TRUE,(LPARAM) hIcon); 2. 如何改变
2004-03-21 20:30:00
3132
原创 VC快捷键:
F1: 帮助 Ctrl+O :OpenCtrl+P :PrintCtrl+N :NewCtrl+Shift+F2 :清除所有书签F2 :上一个书签Shift+F2 :上一个书签Alt+F2 :编辑书签Ctrl+F2 :添加/删除一个书签F12 :Goto definitionShift+F12 :Goto referenceCtrl+Num+ :Displa
2004-03-21 17:36:00
2520
1
原创 Visual C++编程技巧
1. 如何获取应用程序的实例句柄?应用程序的 实例句柄保存在CWinAppIm_hInstance 中,可以这么调用AfxGetInstancdHandle获得句柄.Example: HANDLE hInstance=AfxGetInstanceHandle();2. 如何通过代码获得应用程序主窗口的指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用 AfxGetMai
2004-03-21 17:36:00
2594
原创 一个手工读写INI文件的类(一)
Windows中有GetPrivateProfileString 和WritePrivateProfileString函数可以进行读写INI配置文件,但这两个函数每取出一个数据,都要打开文件,在文件中进行搜索,这样处理的效率肯定会很慢,因此下面提供了一个将配置文件读入内存中的做法,这样做的好处是一次读取文件,快速搜索(使用Map映射)。可以将所有数据全部保存成字符串或者文件。INI配置文件主要
2004-03-21 17:32:00
2887
原创 OpenGL 下的文字显示
一直以来,OpenGL状态下的文字显示都是一个问题,本文使用嵌套显示列表的方式进行OpenGL状态下的字符串的显示。 有以下几点需要注意: 1:本程序显示按照给定的高度和文字的位置显示某一种字体的文字,其中一些字体的参数定义在OpenGLText内部给定,可以随意将它抽出来。如果将代码用于实际应用中,建议文字的文字间距自己设定,也可以随意添加文字的倾斜角、旋转角度、
2004-02-20 11:38:00
5139
7
原创 VC开发数据库基础之ADO篇 (1)
VC开发数据库基础之ADO篇 一、ADO简介ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,请不必为此担心,即使你对OLE DB,COM不了解也能轻松对付ADO,因为它非常简单易用,甚至比你以往所接触的ODBC API、DAO、RDO都要容易使用,并不失灵活性。本文将详细地介绍在VC下如何使用ADO来进
2004-02-20 11:38:00
3375
原创 VC开发数据库基础之ADO篇 (2)
Execute执行完后返回一个指向记录集的指针,下面我们给出具体代码并作说明。 _variant_t RecordsAffected;///执行SQL命令:CREATE TABLE创建表格users,users包含四个字段:整形ID,字符串username,整形old,日期型birthdaym_pConnection->Execute("CREATE TABLE users(ID INTEGER,
2004-02-20 11:38:00
2498
原创 用Visual C++操作INI文件
在我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下: 一.将信息写入.INI文件中. 1.所用的WINAPI函数原型为: BOOL WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString
2004-02-20 11:38:00
3104
原创 矩形体排样问题
// TypeSet.cpp: implementation of the CTypeset class.////////////////////////////////////////////////////////////////////////#include "stdafx.h"#include "../INC/TypeSet.h"//用法示例void TestTypeset(HDC
2004-02-20 11:09:00
5259
5
原创 打印位图(上)
关于位图的打印,很多人对此很困惑,在这方面产生的问题也很多,主要包括以下几点。 1:打印的图片太小; 2:根本打印不出来位图 3:打印预览可见、但打印不出来; 产生这些问题的根本原因,在于对位图的理解不够深刻。 一个CBitmap对象,可能是DDB位图(设备相关位图),或者DIB位图(设备无关位图),其中
2004-01-14 11:06:00
3824
1
原创 打印位图(下)
/*HDC hDC, 打印机dcHBITMAP hBmp, 待打印位图int iX, 位图的左上角点x坐标int iY, 位图的左上角点y坐标double dScaleX, 打印机分辨率和屏幕分辨率x方向的比
2004-01-14 11:06:00
2914
3
原创 VC常见入门问题总结(二)
VC常见入门问题总结(二)1:为何我的下拉列表框找不到添加的内容? VC如果不安装补丁的话,下拉列表框刚刚从控件栏拖到设计的对话框中时,其下拉列表的高度很小,所以经常会出现看不到内容的情况,在对话框设计中,点下列表框右侧的三角,然后再把下拉列表拖大即可。2:为何一个位图在打印状态下于屏幕大小比较显得非常小? 可以认为位图是由颜色点阵构成的,因此一般情况下,它
2004-01-08 11:37:00
2578
原创 使用VC开发程序经验谈(二)
二:建立几何元素对象类: AutoCAD字体轮廓由圆弧和多义线(几个点顺次连接形成的一条曲线)的集合构成,圆弧和多义线具有一些相同的属性和方法,比如绘制,如果进一步开发,还可能有相关的线型和颜色等等属性,要把这些公共的属性和方法抽象出来,形成基类。 首先形成三维点结构以及对它的封装:struct READSHX_API MYXYZ{ do
2003-12-22 18:19:00
1888
原创 使用VC开发程序经验谈(二 续)
//下面是上面三个类的实现,注意list的用法//////////////////////////////////////////////////////////////////////// CMyArc Class////////////////////////////////////////////////////////////////////////////////////
2003-12-22 18:19:00
1811
原创 使用VC开发程序经验谈(一)
本文章结合一个读AutoCAD字体文件的实例说明使用C++开发程序的一些经验,本例中,进行读取AutoCAD字体文件,将其字体轮廓读入自定义结构中,显示在屏幕上 图一:工程运行结果 1:工程的搭建 一般的中小型程序,采用几个DLL加一个主程序的方式组织起来,将不同的子模块放在不同的工程里,DLL的动态连接不是将库代码拷贝,而是在程序
2003-12-19 23:21:00
2778
1
原创 Socket传输文件示例(下)
UINT ReceiveDataThread(LPVOID lpParam){ CTzg004Dlg *pDlg=(CTzg004Dlg *)lpParam; //保存文件对话框 CFileDialog dlg(FALSE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
2003-11-18 10:01:00
1975
原创 Socket传输文件示例(上)
//1:显示文件进度//2:可以随时终止传输过程//发送数据线程UINT SendDataThread(LPVOID lpParam);//接收数据线程UINT ReceiveDataThread(LPVOID lpParam);//发送数据按钮消息响应函数void CTzg004Dlg::OnButtonSend() { // TODO: Ad
2003-11-17 09:37:00
2570
4
原创 关于字符串的用法和转换补遗:
1:使用CString,要包含文件afx.h,比如在Win32 Console Application中Alt+F7选择Use MFC in a Static Liberary,然后再添加#include就可以使用CString了。2:WCHAR ch = L’中’;与CHAR ch = ’中’;的区别是第一种使用UNICODE编码,第二种方式一般不经常用到,比如: WCH
2003-11-06 00:29:00
1648
原创 VC常见入门问题总结(一)
1:fatal error C1010: unexpected end of file while looking for precompiled header directive该如何解决 如果发生错误的文件是由其他的C代码文件添加进入当前工程而引起的,则Alt+F7进入当前工程的Settings,选择C/C++选项卡,从Category组合框中选中Precompiled Headers,
2003-11-04 01:26:00
2814
原创 如何按照线型画粗线
WINNT下,可以用以下方式创建画笔 LOGBRUSH brush; brush.lbColor=DrawColor; brush.lbStyle=BS_SOLID;mPen.CreatePen(PS_GEOMETRIC|PS_USERSTYLE|PS_ENDCAP_FLAT,(int)LineWide,&brush,i,PenStyle)
2003-10-31 21:34:00
2444
原创 表达式求值(上)
/* 功能:计算包含变量及函数的表达式 2>变量之间允许有表达式约束 使用说明: 1>用户使用的函数为bool CExpression::CalExp() double m_dResult; file://计算得数 char* m_strExp; file://表达式字符串 CVarList m_VarList; file://变量表 bool m_bDegUnit; // 缺省
2003-10-30 13:38:00
1639
原创 打印的简单实现,以及更改打印设置
void PrintTest(){ CPrintDialog dlg(FALSE, PD_ALLPAGES | PD_COLLATE | PD_NOPAGENUMS | PD_HIDEPRINTTOFILE); if(dlg.GetDefaults()) { DEVMODE FAR *pDe
2003-10-29 17:54:00
1756
原创 有关引用以及LoadBitmap几个容易混淆的问题
1:int& abc();函数中&是什么作用? int x = 0;int &a(int &i){ i = - 1;。 return x ;}main(){int j=10;a(j)=100; //这时候j = -1,x = 100.了}就是这样子,返回引用的话就是返回一个变量的地址里面的内容,就是真正地返回这
2003-10-29 17:52:00
1917
原创 表达式求值(中)
// Expression.cpp: implementation of the CExpression class.//////////////////////////////////////////////////////////////////////// #include "stdafx.h"#include "Expression.h"#include "m
2003-10-28 23:47:00
1386
原创 表达式求值(下)
//函数处理bool CExpression::Level6(double *result){ int num; char funcname[8]; char op = 0; int paranum=1; double para[6]; if( IsFunc( m_strToke
2003-10-28 23:47:00
1260
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人