为什么直接双击cpp文件不能打开,而我把他脱到msdev里面就很正常呢

为什么直接双击cpp文件不能打开,而我把他脱到msdev里面就很正常呢,第1张

你是不是安装纯虚了两个或两个以上版本的vc啊?(如:vc6.0和vs2008)如果是的那就是因为版旅搏本的原因系统默认使用了版本先进的那个打开,如果不是安装了两个版本,那你的vc6.0是不是免安装版的啊,免安装版的在注册表里没登记使用msdev来打开.cpp文件

如楼上所说,在.cpp文件上鼠标右键选择打开方式->选择默认程序->把左下角的始终以这个程序打开相同文件择上

再点浏览,到你安装vc的目录里找msdev(“你的vc安装目录”\microsoft

visual

studio\common\msdev98\bin)

另一个方法是打开一个文件夹,选择文件夹上的工具->文件夹选项->文件类型->dsw文件->选择打开的程序,点浏览到你的安装目录里找(参考下上面,两个方法都差不多)。

windows7,有两种方法:

1,你点.cpp文件右键选择打开方式,->选择默认程序->把始终使用选择的程序打开这种文件打钩,再选你的vc6.0的那个程序,没看到可以点浏览到安装目录下找。

2,你打开控制版面->默认程序->将文件类型或协做镇燃议与程序关联->找到.cpp文件类型->点右上角的更改程序->接下来选vc6.0的程序,没看到可以点浏览到安装目录下找。

鼠标指针的创建和使用:

 

1、创建鼠标指针:

 

1)鼠标指针是一种资源,因此旦信此在资源文件(.rc)中定义,但是创建跟图标差不多,要在绘图窗口中完成;

2)启动VC,单击“打开工作区”命令,打开上一课的Mouse工作区文件,单击“执行”按钮,看看程序运行时鼠标的指针形态,可以看到,在窗口区内是一个单箭头的选择指针,关闭程序,返模迅回VC窗口;

 

3)选择文件菜单中的“新建”命令,注意在新建面板左边的文件类型中选择“Cusor File”指针类型,在右边文件名称中输入curMouse单击“确定”加入绘图窗口;

 

  4)绘图窗口跟上次的图标窗口相似,仔细瞧一瞧工具箱是一样的,但是调色板不一样,只有黑白两色,

 

 中间彩色的两个显示器是什么颜色呢?上面的蓝绿色表示透明色,也就是透明的,在上次绘图标时我们用黄色填充了,

 

 下面的红色显示器表示翻转色,这个颜色跟背景色相反,即不同的背景色会显示不同的翻转色,因此不论黑白背景,都能看到鼠标;

5)选择直线工具,选择翻转色绘制一个大的十字,中间用黑色绘制一个小框,这是十字精确定位指针,准星应该在十字中心,这一点称作“热点”,

 

 单击一下工具箱左边的工具条上的一个发光的小按钮,鼠标指针移到绘图区会变成一个小十字,在中心点击一下,这一点将成为鼠标指针的热点;

 

2、加载指针:

1)保存一下坦谨文件,关闭绘图窗口,打开Mouse.h头文件,加入鼠标指针的标识符申明:

 

#define IDC_MYCUR 201

 

保存一下文件;

 

2)打开记事本,单击“保存”按钮,位置保存在自己文件夹的Mouse中,文件名为Mouse.rc文件类型为“所有文件”,创建一个资源文件;

3)输入以下代码,定义一个鼠标指针资源,绿色双斜杠部分是注释:

#include "Mouse.h"//要用头文件中申明的标识符

 

//下面定义一个鼠标指针

IDC_MYCUR CURSOR DISCARDABLE  "curMouse.cur" 

//标识符,   指针, 内存清除,  指针文件名

 

4)打开“工程”菜单,选择“添加工程”里的“Files...”命令,在d出的对话框中选择资源文件Mouse.rc,单击“确定”,把资源文件加入到工程中;

 

保存一下文件;

 

3、使用指针:

 

1)在左边的项目控制台里头双击打开Mouse.cpp,找到InitApplication函数代码段;

2)找到里面加载鼠标指针的一句,把原来的箭头指针换掉,

 

 代码改为:wcMouse.hCursor=LoadCursor(hInstance,MAKEINTRESOURCE(201))

 

 其中的201就是在头文件中定义的标识符的值,代表了资源文件中定义的指针资源;

 

保存一下所有文件;

 

单击编译条上的构建按钮,开始构建程序,如果输出窗口出现错误,那就在三个文件中仔细核对,每次修改了要及时保存,构建成功后就可以单击“执行”按钮,看看程序发生的变化;

你的要求中,imgTrack只是底图,因此在这里不于理会。

给出以下代码供参考:

一、程序控件说明:

1、窗体 Form1

2、窗体上一Panl控件 Panel1 (如你的容器为其它也可,只要知道它的宽Width便可)。备档如

3、Image控件 Image1。

二、程序目标:

使Image1在鼠标拖动下左右移动,但不能移出控件Panel1。

三、具体代码:

1、头文件代码:

//---------------------------------------------------------------------------

#ifndef Unit1H

#define Unit1H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ExtCtrls.hpp>

#include <Graphics.hpp>

//---------------------------------------------------------------------------

class TForm1 : public TForm

{

__published: // IDE-managed Components

TPanel *Panel1

TImage *Image1

void __fastcall Image1MouseDown(TObject *Sender,

TMouseButton Button, TShiftState Shift, int X, int Y)

void __fastcall Image1MouseUp(TObject *Sender, TMouseButton Button,

TShiftState Shift, int X, int Y)

void __fastcall Image1MouseMove(TObject *Sender, TShiftState Shift,

int X, int Y)

private: // User declarations

public: // User declarations

__fastcall TForm1(TComponent* Owner)

bool MouseDownBZ//鼠标按下标志(自行加入)

int MouseX//鼠标坐标(自行加入)

}

//---------------------------------------------------------------------------

extern PACKAGE TForm1 *Form1

//---------------------------------------------------------------------------

#endif

2、仿启cpp文件中蠢带:

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Image1MouseDown(TObject *Sender,

TMouseButton Button, TShiftState Shift, int X, int Y)

{

MouseDownBZ = true

MouseX = X

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button,

TShiftState Shift, int X, int Y)

{

MouseDownBZ = false

MouseX = X

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,

int X, int Y)

{

int MinMove = 0

int MaxMove = Panel1->Width - Image1->Width

int LSMove = Image1->Left+(X-MouseX)

if(MouseDownBZ == true){

if((LSMove >= MinMove)&&(LSMove <= MaxMove))

{

Image1->Left = LSMove

}

}

}

//---------------------------------------------------------------------------

代码非常简单,希望是你要的。

我想如果你是会BCB的人,我这样写出来应该能看懂了。

此外,在窗体构成时,以上代码中加入:

Image1->Parent->DoubleBuffered = true

可以减低Image1在移动过程中的闪动感,特别是Imgae1图片大的时候。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12296521.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存