博文

ASP入门与实例---IIS的安装与配置(2008-03-31 17:06:00)

摘要: 1、运行环境与软件要求 Windows 2000 以上 (不包括Windows XP Home版) IIS 4.0 以上 Microsoft Access 2000 Dreamweaver MX 2、IIS的安装与配置 a.安装IIS 若操作系统中还未安装IIS服务器,可打开“控制面板”,然后单击启动 “添加/删除程序”, 在弹出的对话框中选择 “添加/删除Windows组件”,在Windows组件向导对话框中选中“Internet信息服务(IIS)”,然后单击“下一步”,按向导指示,完成对IIS的安装。(图例如下图1、图2 由于白茶123使用的是Windows Server 2003操作系统所以和大家的安装界面有所出入,但大体相同) 此主题相关图片如下: 图1—windows组件向导1 此主题相关图片如下: 图2—windows组件向导2 b.启动Internet信息服务(IIS) Internet信息服务简称为IIS,单击Windows开始菜单---所有程序---管理工具---Internet信息服务(IIS)管理器,即可启动“Internet信息服务”管理工具(如图3) 此主题相关图片如下: 图3—Internet信息服务(IIS)管理器 c.配置IIS IIS安装后,系统自动创建了一个默认的Web站点,该站点的主目录默认为C:\\Inetpub\\www.root。 用鼠标右键单击“默认Web站点”,在弹出的快捷菜单中选择“属性”,此时就可以打开站点属性设置对话框,(如图4)在该对话框中,可完成对站点的全部配置。 此主题相关图片如下: 图4—默认Web站点属性 主目录与启用父路径 单击“主目录”标签,切换到主目录设置页面,(如图5)该页面可实现对主目录的更改或设置。注意检查启用父路径选项是否勾选,如未勾选将对以后的程序运行有部分影响。(如图6),主目录—配置---选项。 此主题相关图片如下: 图5—默认Web站点主目录设置 此主题相关图片如下: 图6—默认Web站点启用父路径设置 设置主页文档 单击“文档”标签,可切换到对主页文档的设置页面,(如图7)主页文档是在浏览器中键入网站域名,而未制定所要访......

阅读全文(2311) | 评论:0

转自绘按钮控件属性自绘属性的保持(2008-02-27 17:39:00)

摘要:由于标准的按钮控件在样式上比较单调,因此,在很多时候,我们都需要对标准按钮控件实行自画,以满足特定的需求。为了能让按钮控件支持自画,需要设置按钮的BS_OWNERDRAW风格,一般情况下,我们可以在PreSubclassWindow中进行设置:
class CxxxButton : public CButton
{
...
};

void CxxxButton::PreSubclassWindow()
{
     ModifyStyle( 0, BS_OWNERDRAW);
    CButton::PreSubclassWindow ();
}
这样,我们就可以重载DrawItem,从而按照自己的意愿对按钮进行自画。

        但是,在实际环境中,我们经常发现这样的bug:我们明明已经对某个按钮控件进行了子类化了,并且开始的时候,该按钮也确实是自画的,可以满足当前的需求。但是在进行了一些其它的操作之后,发现该按钮有变为了标准的按钮了,自画属性已经不翼而飞了!这可不是我们所希望的。
       那么,该如何让按钮在不管进行了什么操作之后,还能保持自画的风格呢?从MSDN中找到了解决的方法:截获BM_SETSTYLE的消息。从MSDN中,可以了解到,应用程序在改变按钮的风格的时候,会给按钮发送BM_SETSTYLE的消息。我们在按钮处理该消息之前截获它,然后修改消息参数为符合自己需求的风格,这样就不怕应用程序在暗地里捣鬼了。部分代码如下:

1、消息声明:
afx_msg LRESULT OnSetStyle ( WPARAM wParam, LPARAM lParam );

2、消息映射:
ON_MESSAGE ( BM_SETSTYLE, OnSetStyle )

3、实现修改风格:
LRESULT CxxxButton::OnSetStyle ( WPARAM wParam, LPARAM lParam )

阅读全文(2312) | 评论:0

转Visual C++实现Flash动画播放(2008-02-22 14:20:00)

摘要: 摘要: 本文通过在VC中将外部swf格式文件内嵌为VC的内部资源,使其在程序运行过程中从资源动态释放到临时文件,从而实现VC对Flash动画的播放。
  引言   Flash动画由于可以很方便地把用户的想象通过动画显现出来,使原本只属于专业制作人员的动画制作变的异乎寻常的快捷、方便。由于Flash 制作的动画在层次、内容、表现形式等诸多方面均比较出色,因此在网络上得到迅猛的发展,更有不少厂商用Flash在互联网上做起了广告和产品演示,效果丝毫不比视频的差,而体积则要小的多。Flash不仅在网络上有广泛的应用,在普通的应用程序中也可以借助Flash实现一些VC、Delphi等编程语言所难以实现的特效,比如在一些演示版的程序中完全可以将程序运行前的闪屏用Flash来制作。本文下面将通过对内嵌资源的动态释放来实现VC对Flash 动画的播放,并给出了部分实现代码。   嵌资源的动态释放   Flash动画在此是作为程序的一个模块,虽然也可以以文件的形式作为一个外部资源来使用,但为了避免因外部模块遗失而造成程序的非正常运行,可将由Flash 5.0预先制作好的swf格式的文件以资源的形式打包到应用程序中去,而在程序运行时再将其从资源恢复到文件,使用完毕再通过程序将其从磁盘删除。   在导入资源时由于swf格式文件并非VC的标准资源,所以在导入时需要在"Resource type"栏指定资源类型"SWF",特别需要注意的是在此必须要包含引号。加入到资源后可以通过资源视图看到导入的SWF资源是以二进制形式保存的,一但加入就不能再通过资源视图对其进行编辑了。   在使用SWF资源前首先要将其动态从应用程序中释放到文件中才可对资源做进一步的使用。可先通过宏MAKEINTRESOURCE()将资源标识号IDR_SWF转换成字符串Name,再分别通过FindResource()、LoadResource()函数查找、装载该资源到内存: CString Type="swf";
HRSRC res=FindResource (NULL,Name,Type);
HGLOBAL gl=LoadResource (NULL,res);   当资源加载到内存后,还要通过对资源内存的锁定来返回指向资源内存的地址的指针,并籍此实现资源从内存到磁盘的保......

阅读全文(2264) | 评论:0

【原创VC】不规则窗口程序设计(2008-02-21 10:55:00)

摘要:/**不规则窗口程序设计----by sword2008        @2008.2.21    刚好元宵节 */  目标:对话框或者其他窗口控件,利用 函数绘制任意外观的控件或者窗口 int SetWindowRgn( HWND hWnd, HRGN hRgn, BOOL bRedraw ); hWnd为窗口句柄, bRedraw为是否重绘 hRgn为外观区域,这个为最重要的,决定整个外观,其包括四大函数 CreateRectRgnIndirect CreateEllipticRgnIndirect CreatePolygonRgnCombineRgn            //个人认为比较好用的   用CreateEllipticRgnIndirect做个例子 建立一个空的项目,对话框程序。 OnInitDialog()里面 CRgn MyRgn;
 RECT m_rect;
 m_rect.left=0;m_rect.top=0;m_rect.right=500;m_rect.bottom=500;
 MyRgn.CreateEllipticRgnIndirect(&m_rect);  SetWindowRgn(MyRgn,true); 看看吧!hRgn确定外观的描绘!呵呵!还有其他函数,可以慢慢观看 例子2,用了CombineRgn跟踪轨迹  CDC * pDC = this->GetDC();
 CFont rfont,*pOldFont;
 rfont.CreatePointFont(500,"隶书");
 pOldFont=pDC->SelectObject(&rfont);
 CRgn MyRgn;
 pDC->BeginPath();
 pDC->Se......

阅读全文(4636) | 评论:0

转用VC++制作播放AVI视频流的动画按钮(2008-02-21 09:54:00)

摘要: 用VC++制作播放AVI视频流的动画按钮 收藏本页到:雅虎收藏 新浪ViVi 365Key 天极网摘 和讯网摘 搜狐网摘 POCO网摘 字体:小 大 中华网络安全联盟    作者:佚名    来源:不详    时间:2006-4-18         一、实现方法   为了实现能够播放AVI视频流的动画按钮,还是需要利用控件的重载功能,这部分内容本书已经在《实例:实现XP风格的按钮》中介绍了,这里就不再赘述了,读者可以参考该实例查阅相关内容。本实例主要探讨如何使用MFC的CanimateCtrl动画类播放AVI格式的视频流,视频流可以来自一个AVI文件,也可以来自资源。在程序中合理地使用动画控件,可以使程序的界面更加形象生动。   MFC的CAnimateCtrl类封装了动画控件,该类的Create()成员函数负责创建动画控件,其声明为: BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );   函数中的参数dwStyle是如表一所示的控件风格的组合,参数rect指定了控件的尺寸,pParentWnd指向父窗口,nID是控件的ID。若创建成功则函数返回TRUE。 风格 含义
ACS_CENTER 使动画片居于控件中央,并使动画片打开后控件窗口的尺寸和位置保持不变。如果不指定该风格,则控件的尺寸会自动调整来适应动画片的大小。 
ACS_TRANSPARENT 使动画片的背景透明(不输出动画片的背景色)。
ACS_AUTOPLAY 一旦打开动画片后就一直重复播放。 表一、动画控件的风格   除表中的风格外,一般还要为动画控件指定WS_CHILD、WS_VISIBLE和WS_BORDER窗口风格。例如,要创建一个能自动播放的动画控件,应该指定其风格为WS_CHILD|WS_VISIBLE|WS_BORDER|ACS_AUTOPLAY。   CAnimate......

阅读全文(1519) | 评论:0

转在VC中如果实现GIF的播放?(2008-02-20 15:47:00)

摘要: 在VC中如果实现GIF的播放?
void   CImageView::OnDraw(CDC*   pDC)  
  {  
          CImageDoc*   pDoc   =   GetDocument();  
          ASSERT_VALID(pDoc);  
          //   TODO:   add   draw   code   for   native   data   here  
          IPicture   *pPic;    
          IStream   *pStm;    
           
          CFileStatus   fstatus;    
          CFile   file;    
          LONG   cb;    
           
          if   (file.Open("c:/a.jpg",CFile::modeRead)  
      &n......

阅读全文(3901) | 评论:0

转VC下显示JPEG、GIF图像的简便方法(2008-02-20 15:39:00)

摘要:摘要:本文讲述了在Visual C++ 6.0下显示JPEG、GIF等格式标准的图像的一种实现起来比较简便的方法,对实现过程作有详细的说明。

  关键字:图像、JPEG、GIF、Microsoft Visual C++ 6.0

  一、 引言

  JPEG图像压缩标准随然是一种有损图像压缩标准,但由于人眼视觉的不敏感,经压缩后的画质基本没有发生变化,很快便以较高的压缩率得到了广泛的认可。GIF格式虽然仅支持256色但它对于颜色较少的图像有着很高的压缩率,甚至超过JPEG标准,也得到了广泛的认同。但作为众多程序员的一个重要的开发工具--Microsoft Visual C++ 6.0的MFC库却仅对没有经过任何压缩的BMP位图文件有着良好的支持,可以读取、显示、存储甚至在内存中创建一块内存位图。由于BMP格式的图像没有经过任何的压缩,不论是作为程序的外部文件,还是作为程序的内部资源都要占据大量的空间,尤其是后者会大大增加可执行文件的长度。可以看出,如果能用经过压缩、具有较好的压缩率的JPEG或GIF格式的图像来取代BMP文件在VC中的应用,无疑还是很有吸引力的。

  二、 设计思路

  虽然有一些操作、处理JPEG、GIF等其他格式图像的Active X控件,但总的来说使用起来并不太方便,笔者经过实验摸索,总结出了一种借助于COM接口的OLE方法来实现上述功能的一种简便方法,现介绍如下以飨广大读者:

  下面我们要使用IPicture 的COM接口,有必要对该图像接口做些了解:该接口主要管理图像对象及其属性,图像对象为位图、图标和图元等提供一种与语言无关的抽象。和标准的字体对象一样,系统也提供了对图像对象的标准实现。其主要的接口是IPicture和 IPictureDisp,后者是由IDispatch接口派生以便通过自动化对图像的属性进行访问。图像对象也支持外部接口 IPropertyNotifySink,以便用户能在图像属性发生改变时作出决定。图像对象也支持IPersistStream接口,所以它能从一个 IStream接口的实例对象保存、装载自己,而IStream接口也支持对流对象的数据读写。

  我们可以用函数OleLoadPicture从包含有图像数据的流中装......

阅读全文(2478) | 评论:0

转在VC中使用 Flash 美化你的程序(2008-02-20 14:02:00)

摘要:  [ 原创文档 本文适合中级读者 已阅读24361次 ] 文档 代码 工具 在VC中使用 Flash 美化你的程序

作者:黄金聪源代码下载


代码运行效果图

  利用flash可以作出很漂亮的动画,想不想让自己的程序也有这样漂亮的界面呢? ^_^,其实,要做到这点也不难。在这里将介绍怎样把falsh制作的界面嵌入到自己的程序中,并让flash动画和自己的程序进行交互。

  我们分为两步来走:

  一、将flash动画嵌入自己的程序中,这一点比较简单,使用shockwave flash object控件就可以实现。这个控件在安装flash的时候就装到你的系统上了,flash5.0以下的文件名是swflash.ocx,5.0以上版本的名字是flash.ocx,在系统目录里面应该可以找得到;

  二、在flash动画和自己的程序中传递消息进行交互。这一点也是要通过控件来实现,不过得在flash动画和自己的程序中做些处理。

下面我们来具体说明操作过程:

一、将flash动画嵌入自己的程序中。所有在windows平台上的支持ocx控件的软件开发工具都可以做到这一点。我使用的是vc++6.0,就以这个的做法来介绍。

  1、检查你的系统上是否有shockwave flash object控件并已注册。如果你的系统上装有flash,则就有这个控件,否则的话,可以到网上下载一个过来安装。
  2、新建一个MFC对话框应用程序,假设命名为PlayFlash。
  3、添加shockwave flash object控件。建立对话框应用程序后,在主菜单里选择“工程->添加工程->components and controls”菜单选项,这时会弹出一个components and controls gallery文件选择对话框,里面有两个文件夹,一个是registered activex controls,一个是visual c++ components。选择第一文件夹后会出现一系列系统上已注册过的activex控件。在里面选择shockwave flash object(......

阅读全文(2168) | 评论:0

转如何在VC中显示动态的GIF(2008-02-20 13:43:00)

摘要: 如何在VC中显示动态的GIF
作者:薛碧 下载本文示例源代码



如果是使用VB,也许这个话题是多余的,因为VB有一个图象控件可以非常容易地实现各种格式的图象显示功能,然而对于VC却没有一个象样的控件可以达到这种效果,怎么办?经过一段日子的研究,发现只需要实现两步工作,就可以在VC中实现如同VB中一样的gif动态效果。 本文将介绍的两部分是IPicture接口的使用和gif的储存格式,好象一听到储存格式,读者就不想再看下去了!其实不然,这里只须用到其最基本的一部分,请读者耐心地往下看。 一.IPicture接口 IPicture接口是一个com类,其成员函数可参见微软的MSDN,这里只需用到以下几个函数: get_Width 返回当前图像的宽度 get_Height 返回当前图像的高度 Render 在指定的位置、设备上下文上绘制指定的图像 IPicture的使用不需要CoCreateInstance函数,而只需要使用OleLoadPicture,鉴于此接口在许多文章杂志上均有介绍,这里略去(因为不是本文的重点)。 二.Gif储存格式 gif储存格式是一个非常复杂的内容,如果要讲透彻可以写很多篇文章,庆幸的是要实现本文的主题只需要知道其中的一个图象储存结构就可以了,这里定义该图象结构为gifImage: typedef struct gifImage{    WORD logX;    WORD logY;    WORD width;    WORD height;    struct flag{           BYTE d:3;           BYTE c:1;           BYTE b:3;       ......

阅读全文(2870) | 评论:0

【原】按钮的自绘(2008-01-30 16:55:00)

摘要:OnDrawItem 注意如果在CButton基础上有虚函数 在类内直接通过该消息修改外观 有了hDC,CDC也有了,CDC有了,自绘还会远吗? void CTestDlg::OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
{
 CDC ButtonDC;
 CBitmap bitmapTrans;
 BITMAP bmp;
 CRect rc;
 CDC mem;  ButtonDC.Attach(lpDrawItemStruct->hDC);
 mem.CreateCompatibleDC(&ButtonDC);
 rc=lpDrawItemStruct->rcItem;
 UINT state = lpDrawItemStruct->itemState;
 if(state & ODS_FOCUS)
 {
  bitmapTrans.LoadBitmap(IDB_GETFOCUS);
  bitmapTrans.GetBitmap(&bmp);
  CBitmap  * old=mem.SelectObject(&bitmapTrans);
  ButtonDC.StretchBlt(rc.left,rc.top,rc.right,rc.bottom,&mem,0,0,bmp.bmWidth,bmp.bmHeight,SRCCOPY);
  mem.SelectObject(old);
  bitmapTrans.DeleteObject();
  ButtonDC.SetBkMode(TRANSPARENT);
  ButtonDC.DrawText("已选中",&a......

阅读全文(2754) | 评论:0