2012-12-18 06:51
⁄ 工业·编程
⁄ 共 1537字
要实现的功能实际上很简单,一般人都用到见惯不惯了,但是实现起来还是有点意思的。
问题详细描述:(三步)
单击鼠标左键时记录下单击点;
鼠标拖动时,显示的矩形框能够动态的跟随显示;
释放鼠标左键时擦出矩形框。
这样分析其实问题就简单一些了,只需要对鼠标的三个事件进行相应就可以了。
代码主要在三处地方修改了:
第一处:VIEW类中设置私有变量(VIEW类.h文件中)
private: BOOL m_startRect; //绘制矩...
UI界面, VC编程技巧阅读全文
2012-12-17 06:48
⁄ 工业·编程
⁄ 共 4356字
常常需要将屏幕图像或程序图形保存成图像格式,对于不太熟悉设备上下文和DDB、DIB的新手来说,无疑是一个难题,下面给出简单实现抓图功能的两个函数,只要稍加改动就可实现图像的保存。
函数1: CopyScreenToBitmap //将屏幕指定区域存成图片 HBITMAP CxxxDlg::CopyScreenToBitmap(LPRECT lpRect) //lpRect 代表选定区域 { HDC hScrDC, hMemDC; // 屏幕和内...
VC编程技巧阅读全文
2012-12-13 11:56
⁄ 工业·编程
⁄ 共 1320字
1.在VS2005中建立Win32 Dynamic-Link Library的方法: 文件->新建->项目->Visual C++->Win32->Win32项目,进入Win32应用程序向导, 在应用程序设置的应用程序类型中选择“DLL(D)”,一般还要在附加选项中勾选“空项目”
2.在VS2005中添加DLL的方法: 1)隐式链接方式加载DLL 首先将dll项目中生成的.lib文件和.dll文件复制到调用项目中。其实项目在编译时只需要.lib文件,不需要.dll文件;而编译完成后,链...
dll, VC编程技巧阅读全文
2012-12-01 21:26
⁄ 工业·编程
⁄ 共 887字
重载PreTranslateMessage函数屏蔽回车和ESC的消息: BOOL C***Dlg::PreTranslateMessage(MSG* pMsg) {
if(WM_KEYDOWN == pMsg->message ) {
UINT nKey = (int) pMsg->wParam;
if( VK_RETURN == nKey || VK_ESCAPE == nKey ) return TRUE ;
}
return CDialog::PreTranslateMessage(pMsg);
} 关于PreTran...
VC编程技巧阅读全文
2012-11-27 00:18
⁄ 工业·编程
⁄ 共 596字
atexit()用于注册一个函数,告诉操作系统在 在软件退出的时候, 执行这个被注册的函数.
注册的函数原型是 void fn(void) , 即没有输入参数,没有返回值.
* ATEXIT.C: This program pushes four functions onto * the stack of functions to be executed when atexit * is called. When the program exits, these programs * are executed on a "last in, first out" basis. */
#include <stdlib.h&g...
VC编程技巧阅读全文
2012-11-27 00:13
⁄ 工业·编程
⁄ 共 297字
配置属性】——>【生成事件】——>【生成后事件】中的命令行command line 设置的作用很方便使用链接库的项目,
比如一个项目依赖于另一个项目的生成文件dll LIB 等文件,那么可以在另一个项目编译成功后把文件拷贝到指定的目录。
给例子:
set COPYCMD=/Y echo Updating ..\dfu\debug\DFUEngine.dll if not exist ..\dfu\debug mkdir ..\dfu\debug xcopy /D .\Debug\DFUEngine.dll ..\dfu\debug xcopy /D .\Debug\...
VC编程技巧阅读全文
2012-11-16 23:35
⁄ 工业·编程
⁄ 共 557字
问题描述:我提供了一个库给上层使用,上层的应用程序运行时出现崩溃。
问题解决:搭环境,用VC调试查问题。 原来是如下的问题,取主窗口句柄使用了
AfxGetApp()->GetMainWnd()->m_hWnd
但程序运行时AfxGetApp()会返回 NULL值,所以程序崩溃。
代码改为
CWinApp* pWinApp = AfxGetApp();
if (NULL != pWinApp)
{
CWnd *pWnd = pWinApp->GetMainWnd();
if (NULL != pWnd)
{
//可安全取 pWnd->m_hWnd;
}
}...
VC编程技巧阅读全文
2012-10-09 21:10
⁄ 工业·编程
⁄ 共 462字
编了这么多程序却不知道如何发布,实在汗颜。大家都知道VC编译默认生成debug版本的程序,但是debug版本程序无法运行在没有安装VC的电脑上,这就要就我们生成release版本的程序,因为release版本在未安装VC的电脑上也能运行。
那么如何用VC++ 6.0发布程序
1、首先确定Debug版无错,注意Trace等调试方法可能造成的错误 2、Release版的exe文件链接的是标准的MFC DLL,比如MFC42.dll。这些DLL在安装Windows的
时候,就会装到系统...
Release, VC编程技巧阅读全文
2012-10-09 20:10
⁄ 工业·编程
⁄ 共 1014字
在程序使用Dll有两个加载方式,一种是动态方式,就是LoadLibrary载入Dll,然后用GetProcAddress来加载需要使用的Dll函数。另一种就是静态连接方式,将dll生成的lib,加入到工程中,然后使用时就像使用Win API一样使用。
今天我们不讨论动态载入的方式,我们采用静态载入的方式。但有一个问题,由于很多Dll发布的时候,根本就不提供lib,也或许你在使用一个未公开的dll,没有lib我们就不能静态加载,我手工来生成吧。
手工生成
可...
VC编程技巧阅读全文
2012-09-06 23:11
⁄ 工业·编程
⁄ 共 265字
要说初始化表的重要作用我网上找了下就只找了这两个常用的:
(1)如果类存在继承关系,派生类必须在其初始化表里调用基类的构造函数。 (2)类的const常量只能在初始化表里被初始化,因为它不能在函数体内用赋值的方式来初始化。
例:
class A
{
const int tmp;//A类里的常量
public A(int value):tmp(value)//使用初始化表来初始化常量tmp
{ ...
VC编程技巧, 初始化阅读全文