《专家门诊 Visual C++开发答疑300问》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:肖宏伟编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2003
  • ISBN:7115113041
  • 页数:376 页
图书介绍:本书精选了300多个在Visual C++程序设计中经常遇到的问题和典型的功能需求,以专家解答的方式展现给读者。

第1章 开发工具与调试 1

如何快速地规范代码缩进格式 2

如何在Release状态下进行调试 2

如何修改开发环境的字体 3

如何获取网卡的地址 21 3

Assert和Vertify有什么区别 3

Release版和Debug版有什么不同 3

如何在非MFC程序中使用ClassWizard 4

如何设置条件断点 4

Workspace和Project之间是什么样的关系 4

在编辑状态下发现成员变量或函数不能显示提示时如何打开提示功能 5

如何将一个通过ClassWizard生成的类删除 5

如何将在workspace中消失的类找出来 6

如何清除所有的断点 6

如何在ClassWizard中选择未列出的消息 6

如何添加Lib文件到当前工程 7

如何整理ClassView视图中大量的类 7

如何查看一个宏(或变量、函数)的定义 7

如何检测程序中的括号是否匹配 7

#include〈FileName.h〉和#include“FileName.h”有什么区别 8

如何在工作区(Workspace)导入多个项目(Project) 8

如何快速删除项目下Debug文件夹中临时文件 8

如何快速生成一个与现有工程除了工程名外完全相同的新工程 9

如何解决VisualG++6.0不正确连接问题 9

引起LNK2001的常见错误都有哪些 9

如何调试Windows外壳扩展程序(ShellExtension) 10

如何调试一个没有原码的exe文件调用的dll 11

怎样设置栈的大小 11

如何使用VisualC++6.0中的快捷键 12

如何知道GetLastError()返回的错误代码的意义 12

VisualC++6.0工程中的项目文件都表示什么 13

第2章 VisualC++6.0编程基础 15

什么是匈牙利命名法 16

Windows编程中的句柄是什么 16

什么是回调函数以及如何使用它 18

内存泄漏主要由哪些原因引起的 18

如何发现内存泄漏 19

C++的const类型是如何使用的 19

指针和引用有什么区别 22

如何动态分配二维数组 23

纯虚函数是如何使用的 24

堆和栈有什么区别 25

两个类互为成员应该如何声明 26

bool和BOOL有什么区别 26

GlobalAlloc(),malloc()和new()有什么区别 26

如何使用关键字volatile 27

如何实现int与CString,char*与CString,float与CString之间的互相转化 27

什么是UNICODE以及如何使用它 28

C++中关键字typename有什么作用 29

关键字_stdcall和_cdecl有什么区别 30

第3章 对话框及控件的使用 31

如何创建和使用一个无模式对话框 32

为什么使用CRichEditCtrl控件的对话框不能显示出来 33

如何改变控件的字体 34

如何限制编辑框的准许字符 35

如何防止Edit框中的Password被非法获取 37

如何设置ClistCtr控件为可以整栏选择并且有网格条纹的报表形式 38

如何给CListCtrl控件增加列标题栏 39

如何给CListCtrl填充数据 39

如何实现CListCtrl中的排序问题 40

如何给CTreeCtrl填充数据 42

如何对CTreeCtrl中的节点文本进行编辑 43

如何实现调色程序 43

如何设定静态文本框的背景色和文本颜色 44

如何响应CSliderCtrl控件的拖动消息以及得到当前位置 45

如何使用CFileDialog对话框 46

如何使用CColorDialog对话框 47

如何使用CFontDialog对话框 47

如何避免CRichEditCtrl中显示中文乱码的问题 48

向列表框CListBox添加很多数据时如何防止闪烁 48

当列表框ClistBox的项目宽度超过了其自身窗口宽度时如何显示提示条 49

在给CComboBox的属性框中加入多项时如何换行 50

如何在下拉框里显示上几次程序运行的输入信息 51

怎样获得磁盘驱动器的序列号 1 53

如何改变对话框DoModai的返回值 54

怎样弹出选择目录的对话框 55

如何判定驱动器的文件系统类型 1 55

如何判定磁盘是光驱还是软驱 1 57

第4章 一般窗口及界面设计 57

如何生成任意形状的窗体 58

如何设定窗口的背景色 58

如何实现无标题窗口的拖动 59

如何使窗体透明 60

应该在哪儿创建临时文件 1 60

如何对INI文件进行读写 1 61

如何使窗体半透明 62

如何保持窗口的大小不变 64

如何使窗口始终位于所有窗口的最上面 64

如何改变窗口的默认风格 65

如何让窗体显示在中央 65

如何使窗口不可见 66

如何将文本倾斜显示 67

如何重置窗口的大小和位置 67

如何删除文件 1 68

如何制作立体字体 68

如何读写大型的二进制文件 1 69

串太长如何在末尾显示省略号 69

如何在对话框中加入工具条 70

如何在基于文档视图的工程中加入启动画面 71

如何在基于对话框的工程中使用Splash 71

如何将路径转换为长路径名 1 72

如何在对话框上动态创建视图 72

如何将某一区域设为光标热区 73

如何随时获得鼠标的窗口位置 74

如何随意改变光标的形状 75

如何使窗体右上角的系统按钮无效 76

如何控制鼠标的移动范围 76

屏幕保护程序的原理是什么 78

如何改变窗口的图标 78

应该如何制作屏幕保护程序 79

ODBC访问数据库的原理是什么 1 79

如何实现类似QQ程序的界面 82

如何在VisualC++6.0中用回车键切换输入焦点 82

如何一步一步地弹出和关闭窗口 85

如何弹出鼠标提示窗口 87

如何制作类似Windows任务栏的窗口 89

如何通过ADO的记录集修改记录信息 1 91

第5章 SDI和MDI窗口 92

如何切分窗口 93

文档、视图、框架窗口间的关系和消息传送规律是怎样的 93

如何固定视图间的分隔线 94

如何实现切分窗口中视图的动态切换 96

如何动态改变切分窗口的大小 96

OnDraw和OnPaint之间有什么关系 97

如何弹出右键菜单 98

如何给系统菜单添加一个菜单项 99

如何显示级联菜单 99

如何动态增加或删除菜单 101

如何将窗体顶端标题栏的右键菜单屏蔽掉 101

如何使菜单项前带图标 102

如何让工具条的按钮任意分组 104

如何隐藏CScrollView中的ScrollBar 104

如何给工具条增加一个下拉按钮以及如何响应单击下拉按钮的消息 105

如何实现工具栏上的下压式按钮 107

如何在同一行上停靠两个工具条 108

如何在工具栏中放CComboBox控件 110

如何使能和禁止工具条的工具提示 110

如何将系统时间在状态栏上显示 112

如何让MDI窗口一启动时就最大化或者最小化 114

如何使MDI启动时不生成子窗口 114

如何改变窗口框架的颜色 115

怎样得到主框架窗口指针 116

如何实现全屏显示 116

当文档被修改时,如何在标题上加上标志“*” 118

怎样判断获得的视图指针是哪一个类 118

如何取得MDI应用程序中每个视图的指针 119

第6章 消息系统、钩子函数及DLL 120

如何自定义消息 121

应用程序传送的消息有哪些以及有什么区别 121

如何将几个菜单项的消息处理函数放入一个函数中 122

消息WM_NOTIFY是如何使用的 123

是不是只要是CWnd对象就一定有消息循环 124

在对话框中为什么不响应按下向下箭头键(VK_DOWN)和向右箭头键(VK_RIGHT)的消息 124

VisualcC++6.0可以编写哪几种dll 125

VisualcC++6.0如何编写Non-MFCDlls 125

VisualcC++6.0如何编写RegularDlls. 126

VisualcC++6.0如何编写ExtensionDlls 127

如何调用DLL 128

怎样从MFC扩展动态链结库(DLL)中显示一个对话框 129

为了定位DLL.Windows搜索目录的顺序是怎样的 129

Win32中全局钩子的运行机制是怎样的 130

如何获知鼠标移开某个窗口 131

VisualC++6.0中全局共享数据是如何实现的 131

如何记录键盘的所有按键信息 134

如何用按钮模拟鼠标的点击 135

如何用按钮模拟键盘的输入 136

如何制作软键盘的应用程序 137

如何知道自己的工程中调用哪几个DLL文件 151

第7章 磁盘路径与文件操作 152

如何获得系统的所有磁盘驱动器 153

如何获得磁盘空间信息 156

如何确定应用程序的路径 160

如何遍历目录下的每一个文件 163

如何将内容不为空的目录删除 164

如何在txt文件中逐行读写数据 165

如何在特定目录下查找某个文件 165

如何获得文件的属性 167

如何拷贝文件 168

如何移动文件 169

如何快速创建一个大文件 170

如何在VisualC++6.0中使用fopen()函数来读写文件 172

如何用VisualC++6.0编写文件分割工具 174

第8章 数据库 178

一致的数据访问技术ADO与OLEDB的原理以及它们的关系是怎样的 180

如何在程序中动态得到字段的数据类型 183

如何手动注册数据源 184

如何在程序中实现数据源的注册 185

在VisualC++6.0中如何利用UDL文件来建立ADO连接 187

如何通过ADO接口连接数据库 188

如何通过ADO的记录集获得每条记录的信息 189

如何用SQL语句按时间检索 191

如何用SQL语句按字符串检索 193

如何在SQL语句中将多个字符串作为检索条件 194

如何执行嵌套的SQL语句 196

如何访问存有图像字段的数据库 199

如何在VisualC++6.0中建立自定义数据库类 201

ODBC数据库编程中DDX和RFX有什么区别 203

如何用VisualC++6.0开发基于Oracle数据库的应用程序 204

如何直接通过ODBC读、写Excel表格文件 206

在VisualC++6.0中如何访问MySQL数据库 208

第9章 网络与通信 212

什么是RFC 213

如何获得IP地址和主机名 215

如何对某些端口进行扫描 216

如何实现连续多次的Ping命令 218

如何像OutLook一样收发电子邮件 223

如何连接FTP服务器 224

如何获得FTP服务器的文件列表 225

如何下载FTP服务器上的文件 227

如何给FTP服务器上传文件 228

什么是WindowsSockets规范 229

什么是套接口 230

TCPsocket和UDPsocket的区别是怎样的 230

如何用有连接的方式实现聊天室 231

如何用无连接的方式实现系统广播 236

如何实现Proxy服务器 238

如何下载网页 244

如何在应用程序中映射网络驱动器 246

如何实现电话拨号上网 247

如何删除Internet临时文件 248

如何列出系统打开的所有IE窗口的标题 250

如何设置某个已经打开的IE窗口的标题 252

如何清空IE的历史记录 253

如何实现IE中的添加收藏夹的功能 254

第10章 图形图像及打印控制 255

如何对图形进行局部放大 256

BeginPaint和GetDC获得的DC有什么区别 256

如何获取屏幕上某点的颜色 256

位图文件的结构是怎样的 257

如何通过位图文件直接得到位图的大小 258

如何通过位图文件显示位图 259

如何将DIB位图写入位图文件 261

BitBlt和StretchBlt函数有什么区别 262

如何利用掩码位图制作透明图片 263

什么是掩码位图以及如何创建 263

如何绘制半透明位图 265

如何缩放图片 266

如何将转换DIB位图为DDB位图 271

如何将转换DDB位图为DIB位图 273

如何截取屏幕 275

如何任意裁剪图片 280

如何用特定色填充某一区域 281

如何复制位图到剪贴板 283

物理坐标和逻辑坐标有什么区别,它们是如何转换的 284

什么是COLORREF 284

如何画一个1/4圆 285

如何画箭头 285

如何避免屏幕闪烁 286

如何产生复杂线条 287

如何显示JPG和GIF图像 288

怎样定制通用打印对话框CPrintDialog来实现打印功能 290

如何简易实现所见即所得的打印 291

如何确定当前打印机的页面大小和方向 292

如何确定打印队列的状态 294

第11章 操作系统 296

如何获得Windows的版本号 297

如何得到当前Windows是不是安全模式 299

如何查询注册表中的键 299

如何修改注册表中的键 301

如何在注册表中增加键 302

如何删除注册表中的键 303

如何对屏幕分辨率进行控制 303

如何获得系统运行的所有进程 305

如何在任务列表中隐藏应用程序 307

如何获取本机的硬件配置 308

如何用代码实现重启和关闭计算机 310

如何罗列出系统中已经安装的所有可用字体 310

Windows系统关闭的时候都发生了什么消息 312

如何得到当前Windows用户 313

如何格式化磁盘 316

如何用代码增加快捷键 318

如何编写需要密码验证的应用程序 319

如何调用帮助文件(*.chm) 321

如何修改Windows的右键菜单 321

如何在程序中改变Windows的桌面壁纸 322

Windows9x下如何直接访问物理内存 323

如何获取快捷方式(Ink)的目标和参数 326

WindowsNT/2000系统中如何获取系统的启动时间 327

第12章 线程及进程控制 329

如何创建一个线程 330

进程和线程有什么关系 330

如何终止一个线程 331

如何设定线程的相对优先级 331

如何挂起和恢复线程 332

如何用通过剪贴板在进程间交换数据 332

如何通过内存映像文件在进程间交换数据 334

如何通过消息实现进程间的通信 336

如何获得其他应用程序的图标 338

如何获取应用程序的实例句柄 338

如何获得应用程序主窗口的指针 338

怎样启动其他的应用程序 339

如何关闭其他已经打开的程序 341

如何用默认浏览器打开某个url的网页 342

如可创建向导程序 343

如何编写系统托盘程序 345

如何让应用程序在系统中只能存在一个运行的实例 347

第13章 时间控制 349

如何计算时间差 350

程序中如何嵌入日历 350

如可获得毫秒级的系统时间 351

如何让定时器精确到毫秒 351

如何对当前的系统时间进行操作 353

如何获得和修改目录的日期和时间 354

第14章 数学算法 357

如何统计一段中英文混合字符的字符数 358

中文和英文字符所占的字节数是一样的吗 358

排序法都有哪些,其算法都是怎样的 359

如何将十进制字符串、十六进制字符串和二进制字符串互相转化 360

如何随机选号 363

第15章 发布程序 367

如何给软件加密和解密 368

如何使程序在开机时就自动运行 370

如何创建快捷方式 370

如何删除快捷方式 373

如何在程序中用代码注册和卸载ocx控件 374