首页 - 新闻 - vs2010 mfc打包工具_VS2010 MFC对话框程序 打包发布步骤

vs2010 mfc打包工具_VS2010 MFC对话框程序 打包发布步骤

2023-09-15 18:13

打开VS2010,新建项目-->其他项目类型-->visual studio installer-->安装项目;项目建立成功后,目标计算机的文件系统中包含三个文件夹,分别是“应用程序文件夹”“用户的“程序”菜单”、“用户桌面”右键点击“应用程序文件夹”,添加文件,将已编译好的VS2010项目文件中Debug文件夹下的文件全部添加进来。如果Debug文件夹中还有文件夹,也要点击添加文件夹,加进来;如有图标等其他文件也要加进来。程序运行需要的其他文件,如*.dll,*.ocx等文件也要添加进来。MFC对话框程序需要添加mfc100d.dll,msvcp100d.dll两个文件,这两个文件在/windows/system32文件夹中。添加时会弹出对话框,选择“是” 添加后,会出现在解决方案资源管理器的解决方案项目目录下。 4. ?为“用户的“程序”菜单”添加文件夹,这个文件夹将出现在电脑的所有程序栏中。 5. ?为应用程序文件夹中的exe文件创建快捷方式。 右键*exe,选择“创建*.exe的快捷方式”,并在属性栏,为其添加图标,点击属性Icon,选择需要的图标文件 ? 6. 将快捷方式拖到新建的文件夹中。 7. 同样的方式再次重建*.exe的快捷方式,并把它拖到“用户桌面”文件目录下,安装完成后,电脑桌面会出现该快捷方式。 8. 添加卸载程序 在“应用程序文件夹”添加文件msiexec.exe,该文件位于/windows/system32文件夹中。在解决方案资源管理器中,左键点击工程名,在其属性栏中复制ProductCode,将复制内容粘贴到卸载快捷方式的属性栏的Arguments中,前面添加/x ? ? 为该exe文件创建快捷方式,并将其拖入“用户的“程序”菜单”下的新建文件夹中。 ? ? 至此文件添加完毕。 9. 在解决方案资源管理器中,左键点击工程名,在其属性栏中,修改属性 第一个是作者名,第二个是在安装时允许选择“所有人”,第三个是公司名,第四个是产品名。 10. 在解决方案资源管理器中,右键工程名,选择属性,点击系统必备 勾选程序能够正常运行所需的必备组件,看到很多文档说要选择.net framework,其实现在电脑操作系统win7、win10的.net版本都在4.0以上,完全满足vs2010的要求,可以不用勾选。 勾选Visual C++ 2010运行库(x86),如果程序使用数据库,勾选相应数据库组件。 选择“从与我的应用程序相同的位置下载系统必备组件” 11. 生成解决方案,打包完成。在生成的Debug文件夹下有setup.exe安装文件。

上一节中鸡啄米讲了

菜单及CMenu类的使用,这一节讲与菜单有密切联系的工具栏。

?????? 工具栏简介

?????? 工具栏一般位于主框架窗口的上部,菜单栏的下方,由一些带图片的按钮组成。当用户用鼠标单击工具栏上某个按钮时,程序会执行相应的操作,如果鼠标没有点击,只是停留在某个按钮上一会后,会弹出一个小窗口显示提示信息。

???????一般工具栏中的按钮在菜单栏中都有对应的菜单项中,即点击工具栏按钮与点击菜单项的效果相同。但工具栏中的按钮都显式的排列出来,操作很方便,而且按钮上的图片描述功能更直观,所以工具栏作为用户操作接口来说比菜单更加便捷。

?????? VS2010工具栏资源详解

?????? 鸡啄米仍然以VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)中创建的单文档工程Example34为基础,讲解工具栏资源。

?????? 在Example34工程中,打开Resource View资源视图,展开Example->Example34.rc->Toolbar,我们可以看到有一个ID为IDR_MAINFRAME的工具栏资源,双击打开,工具栏资源显示如下:

?

?????? 以IDR_MAINFRAME工具栏的第一个按钮为例说明工具栏按钮的各项属性。用鼠标单击工具栏资源上的第一个按钮,属性页中就会显示其属性。下面分别讲解各项属性。

?????? ID属性:ID_FILE_NEW。不知大家是否还记得,菜单IDR_MAINFRAME的菜单项File->New的ID也是ID_FILE_NEW,两者ID相同,正是如此才使得工具栏第一个按钮与菜单项File->New能实现相同的功能。所以大家一定要记住,如果想让工具栏某个按钮与菜单栏某个菜单项点击后执行的操作相同,就要为两者设置相同的ID。

?????? Prompt属性:Create a new document\nNew。此属性为工具栏按钮的提示文本。在鼠标指向此按钮时,状态栏中会显示“Create a new document”,当弹出提示信息窗口时会显示包含“New”的提示信息。“\n”是两者的分隔转义符。

???????Height属性:15。此属性为工具栏按钮的像素高度。

?????? Width属性:16。此属性为工具栏按钮的像素宽度。

?????? 工具栏资源的最右边总是会有一个待编辑的按钮,我们对其进行编辑后,工具栏资源会自动增加一个新的空白按钮,这也实现了按钮的添加操作。如果我们想要删除某个按钮,就可以用鼠标左键点住它,拖出工具栏资源的范围即可。

?????? 另外,我们看到,第三个按钮(保存按钮)和第四个按钮(剪切按钮)之间有一些间隙,在运行程序后会出现一个竖的分隔线,所以想要在两个按钮之间添加分隔线的话,可以用鼠标左键拖住右边的按钮往右稍移动一些就可以了。

?????? CToolBar类的主要成员函数

?????? MFC为工具栏的操作提供了CToolBar类。下面介绍CToolBar类的主要成员函数。

?????? virtual BOOL CreateEx( ???????????????? CWnd* pParentWnd, ???????????????? DWORD dwCtrlStyle = TBSTYLE_FLAT, ???????????????? DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP, ???????????????? CRect rcBorders = CRect(0, 0, 0, 0), ???????????????? UINT nID = AFX_IDW_TOOLBAR ??????? );

???????创建工具栏对象。参数pParentWnd为工具栏父窗口的指针。参数dwCtrlStyle为工具栏按钮的风格,默认为TBSTYLE_FLAT,即“平面的”。参数dwStyle为工具栏的风格,默认取值WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP,由于是主框架窗口的子窗口,所以要有WS_CHILD和WS_VISIBLE风格,CBRS_ALIGN_TOP风格表示工具栏位于父窗口的顶部, 各种风格可以参见MSDN的Toolbar Control and Button Styles中的定义。参数rcBorders为工具栏边框各个方向的宽度,默认为CRect(0, 0, 0, 0),即没有边框。参数nID为工具栏子窗口的ID,默认为AFX_IDW_TOOLBAR。

???????BOOL LoadBitmap(UINT nIDResource);

?????? 为工具栏加载位图。参数nIDResource为位图资源的ID。成功则返回TRUE,否则返回FALSE。注意,这里的位图资源应当为每个工具栏按钮都提供位图,如果图片不是标准大小(16像素宽,15像素高),则需要调用SetSizes成员函数调整按钮大小和图片大小。

?????? BOOL LoadToolBar(UINT nIDResource);

???????加载由nIDResource指定的工具栏。参数nIDResource为要加载的工具栏的资源ID。成功则返回TRUE,否则返回FALSE。

?????? void SetSizes(SIZE sizeButton,SIZE sizeImage);

?????? 设置工具栏按钮的大小和图片的大小。参数sizeButton为工具栏按钮的像素大小。参数sizeImage为图片的像素大小。

?????? void SetButtonStyle(int nIndex,UINT nStyle);

?????? 设置工具栏按钮或分隔线的风格,或者为按钮分组。参数nIndex为将要进行设置的按钮或分隔线的索引。参数nStyle为按钮风格,可以是以下取值:

?????? TBBS_BUTTON?? 标准按钮(默认) ?????? TBBS_SEPARATOR???分隔条 ?????? TBBS_CHECKBOX???复选框? ?????? TBBS_GROUP?? 标记一组按钮的开始 ?????? TBBS_CHECKGROUP?? 标记一组复选框的开始 ?????? TBBS_DROPDOWN?? 创建下拉列表按钮 ?????? TBBS_AUTOSIZE?? 按钮的宽度根据按钮文本计算,而不基于图片大小? ?????? TBBS_NOPREFIX?? 按钮的文本没有快捷键前缀

?????? UINT GetButtonStyle(int nIndex) const;

?????? 获取工具栏按钮或分隔条的风格。风格可参考SetButtonStyle。参数nIndex为按钮或分隔条的索引。

?????? BOOL SetButtonText(int nIndex,LPCTSTR lpszText);

?????? 设置工具栏按钮的文本。参数nIndex为工具栏按钮的索引。参数lpszText为指向要设置的文本字符串的指针。设置成功则返回TRUE,否则返回FALSE。

?????? CString GetButtonText(int nIndex) const;

?????? 获取工具栏按钮上显示的文本。参数nIndex为工具栏按钮的索引。

?????? 本节内容就讲到这里了,下节继续讲解VS2010工具栏的有关知识。谢谢大家对鸡啄米和本教程的持续关注!

转自:

http://www.gsm-guard.net/software/215.html

选择Splash属性-->配置属性-->常规,选择

选择C/C++-->代码生成,选择

然后重新编译这个程序。

下面开始打包自己写的Splash程序

新建一个项目,选择??安装项目

写上你程序的名字,这个是生成安装程序的名字,点击确定

右击

添加-->文件,选择刚刚编译出的程序的可执行文件,我的是Splash.exe,并把这个程序所有相关的库选择进来。