iTimothy

君看一叶舟,出没风波里


  • 首页

  • 分类

  • 归档

  • 项目

  • 关于

用Photoshop做Mac风格的按钮

发表于 2005-12-01 | 分类于 随笔 | | 阅读次数:
字数统计: 913 字 | 阅读时长 ≈ 3 分钟
  1. 新建文档,RGB模式,白色背景。建立图层1,设置前景色为RGB(51,143,206)。然后选择圆角矩形工具,在工具选项中,设置绘图方式为填充像素,将矩形的圆角半径设为50像素,选择消除锯齿。点击几何选项,将矩形的大小设为91×27像素,在画布正中点击一下,即会出现一个蓝色的圆角矩形。

  2. 现在我们开始添加图层样式了。首先选择投影:将投影的不透明度降低为33%,取消全局光,角度为134度,距离和大小均为1像素,扩展为0,品质不变;

然后是内阴影样式:将内阴影的颜色设为RGB(0,56,113),不透明度为100%,取消全局光,角度为90度,距离为6像素,阻塞为15%,大小为16像素,品质保持不变,这样,按纽就具有了立体感。

  1. 接下来我们要制作光线从按纽中透出的感觉。选择内发光样式,将混合模式设为颜色减淡,不透明度为30%,颜色为白色,方法为较柔软,居中,阻塞为31%,大小为21像素,要特别注意等高线的形状,打开默认的等高线编辑器,将曲线设为图03的形状,选择消除锯齿,范围为31%;

  2. 下面是最关键的一步——添加强烈的反光效果。选择斜面和浮雕样式,将样式设为内斜面,方法为平滑,深度为81%,方向为上,大小为9像素,软化为1像素,阴影的角度为90度,高度为73度,高光和暗调的不透明度均为100%,暗调的模式为正常,颜色为RGB(4,126,188),这样高光效果就出来了。

但这样是不够的,我们希望高光效果更为贴切。选择等高线,注意是斜面等高线,而不是光泽等高线,将等高线类型选择为预设类型中的半圆,消除锯齿,范围为69%,这样就能得到逼真的反光效果。

  1. 为了使按钮看起来更好,我们添加一些简单的阴影效果。但我们的样式中已经采用了投影样式,所以要另外想办法。按住Ctrl键,载入按纽的不透明度区域,从编辑菜单中选择合并拷贝命令,在图层1之下新建一层,按Ctrl+V,将图像粘贴到新层中,取消选择。

合并拷贝命令可以复制选区内所有图层的图像,包括图层样式在内,这里,我们所用这个命令就是为了拼合图层样式的效果。此外,在粘贴前,如果没有取消选择,那么图像会粘贴入选区中,否则的话,图像会被自动粘贴到图层的正中。

对图层2使用高斯模糊,半径大概为5.5像素左右。再用移动工具将图层移动到按纽的右下方,作为透明阴影。

  1. 最后,在按纽上写上文字即可。如果你更喜欢淡灰色的透明按钮,这里有个简单的法子:打开通道面板,点击蓝色通道,仅显示这一个通道的图像,由于我们的按纽是蓝色调的,所以这个通道内的图像最能体现按纽的情况。如果你的按纽是红色调或是绿色调的,那么同样,分别选择红色通道和绿色通道,就能得到灰色的透明按钮了。

获取快捷方式的文件路径

发表于 2005-11-30 | 分类于 技术控 | | 阅读次数:
字数统计: 89 字 | 阅读时长 ≈ 1 分钟

#include

bool ReadShortcut(LPWSTR lpwLnkFile, LPSTR lpDescFile) { bool bReturn = true; IShellLink *pShellLink;

if(bReturn)
{
    bReturn = (CoInitialize(NULL) == S_OK);
    if(bReturn)
    {
        bReturn = CoCreateInstance (CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER,
                IID_IShellLink, (void **)&pShellLink;) >= 0;
        if(bReturn)
        {
            IPersistFile *ppf;
            bReturn = pShellLink->QueryInterface(IID_IPersistFile, (void **)&ppf;) >= 0;
            if(bReturn)
            {
                bReturn = ppf->Load(lpwLnkFile, TRUE) >= 0;
                if(bReturn)
                {
                    pShellLink->GetPath(lpDescFile, MAX_PATH, NULL, 0);
                }
                ppf->Release ();
            }
            pShellLink->Release ();
        }
        CoUninitialize();
    }
}
return bReturn;

}

// 测试代码: char szBuf[MAX_PATH]; ReadShortcut(L”C:\GLWorld.lnk”, szBuf); MessageBox(0, szBuf, “”, 0);

利用windows提供的advapi32.dll进行MD5加密

发表于 2005-11-29 | 分类于 技术控 | | 阅读次数:
字数统计: 206 字 | 阅读时长 ≈ 1 分钟

#include

/ Data structure for MD5 (Message-Digest) computation / typedef struct { ULONG i[2]; / number of bits handled mod 2^64 / ULONG buf[4]; / scratch buffer / unsigned char in[64]; / input buffer / unsigned char digest[16]; / actual digest after MD5Final call / } MD5_CTX;

#define MD5DIGESTLEN 16

#define PROTO_LIST(list) list

/*

  • MTS: Each of these assumes MD5_CTX is locked against simultaneous use. / typedef void (WINAPI PMD5Init) PROTO_LIST ((MD5_CTX )); typedef void (WINAPI PMD5Update) PROTO_LIST ((MD5_CTX , const unsigned char , unsigned int)); typedef void (WINAPI PMD5Final )PROTO_LIST ((MD5_CTX ));

PMD5Init MD5Init = NULL; PMD5Update MD5Update = NULL; PMD5Final MD5Final = NULL;

const char Hex2ASC(const BYTE Hex, int Len) { static char ASC[4096 * 2]; int i;

for (i = 0; i < Len; i++)
{
    ASC[i * 2] = "0123456789ABCDEF"[Hex[i] >> 4];
    ASC[i * 2 + 1] = "0123456789ABCDEF"[Hex[i] & 0x0F];
}
ASC[i * 2] = '\0';

return ASC;

}

int main() { MD5_CTX ctx; unsigned char buf[10] = “Xiaozhou”; HINSTANCE hDLL;

if ( (hDLL = LoadLibrary("advapi32.dll")) > 0 )
{
    MD5Init = (PMD5Init)GetProcAddress(hDLL,"MD5Init");
    MD5Update = (PMD5Update)GetProcAddress(hDLL,"MD5Update");
    MD5Final = (PMD5Final)GetProcAddress(hDLL,"MD5Final");

    MD5Init(&ctx;);
    MD5Update(&ctx;,buf,8);
    MD5Final(&ctx;);

    printf("%s \n",Hex2ASC(ctx.digest,16));



}

return 0;

}

关于Resize的话题

发表于 2005-11-28 | 分类于 技术控 | | 阅读次数:
字数统计: 83 字 | 阅读时长 ≈ 1 分钟

今天在codeproject上面找了些关于Resize的时候,控件自动布局的话题。

把地址贴在这里,作个记号。

http://www.codeproject.com/dialog/RPResizeDlg.asp http://www.codeproject.com/useritems/SizingDialog.asp http://www.codeproject.com/dialog/easysize.asp http://www.codeproject.com/dialog/dlgresizearticle.asp http://www.codeproject.com/dialog/resizectrl.asp http://www.codeproject.com/docking/AutoResizingControls.asp http://www.codeproject.com/dialog/formview2.asp

MSXML读写的例子

发表于 2005-11-28 | 分类于 技术控 | | 阅读次数:
字数统计: 410 字 | 阅读时长 ≈ 1 分钟

1、目标文档:

lizlex
XML Developer's Guide

2、步骤:

(1)在StdAfx.h中引入动态链接库 MSXML.DLL(C:\windows\system32\msxml4.dll)

#import

(2)界面设计: 分别放入三个Text,用于输入数据,与显示文档内容用,并添加关联的成员变量m_strId,m_strAuthor, m_strTitle;并添加确定按钮:

(3)产生文档的程序片断 void CXmlparseDlg::OnButtonGenerate() { UpdateData();

MSXML2::IXMLDOMDocumentPtr pDoc; MSXML2::IXMLDOMElementPtr xmlRoot ;

//创建DOMDocument对象

HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40)); if(!SUCCEEDED(hr)) { MessageBox(“无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!”); return ; }

//根节点的名称为Book //创建元素并添加到文档中 xmlRoot=pDoc->createElement((_bstr_t)”Book”);

//设置属性 xmlRoot->setAttribute(“id”,(const char *)m_strId); pDoc->appendChild(xmlRoot); MSXML2::IXMLDOMElementPtr pNode;

//添加“author”元素 pNode=pDoc->createElement((_bstr_t)”Author”); pNode->Puttext((_bstr_t)(const char *)m_strAuthor); xmlRoot->appendChild(pNode);

//添加“Title”元素 pNode=pDoc->createElement(“Title”); pNode->Puttext((const char *)m_strTitle); xmlRoot->appendChild(pNode);

//保存到文件 //如果不存在就建立,存在就覆盖 pDoc->save(“d:\he.xml”);

}

(4)读取XML文档的程序片断 void CXmlparseDlg::OnButtonLoad() { MSXML2::IXMLDOMDocumentPtr pDoc; HRESULT hr; hr=pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40)); if(FAILED(hr)) { MessageBox(“无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!”); return ; }

//加载文件 pDoc->load(“d:\he.xml”);

MSXML2::IXMLDOMNodePtr pNode;

//在树中查找名为Book的节点,”//“表示在任意一层查找 pNode=pDoc->selectSingleNode(“//Book”);

MSXML2::DOMNodeType nodeType;

//得到节点类型 pNode->get_nodeType(&nodeType;);

//节点名称 CString strName;

strName=(char *)pNode->GetnodeName();

//节点属性,放在链表中 MSXML2::IXMLDOMNamedNodeMapPtr pAttrMap=NULL; MSXML2::IXMLDOMNodePtr pAttrItem; _variant_t variantvalue; pNode->get_attributes(&pAttrMap;);

long count; count=pAttrMap->get_length(&count;);

pAttrMap->get_item(0,&pAttrItem;); //取得节点的值 pAttrItem->get_nodeTypedvalue(&variantvalue;); m_strId=(char *)(_bstr_t)variantvalue;

UpdateData(FALSE);

}

BLOG更新

发表于 2005-11-24 | 分类于 站点日志 | | 阅读次数:
字数统计: 286 字 | 阅读时长 ≈ 1 分钟

前段时间,有人在主站的留言本上发广告连接,后来我修改了留言本的代码,屏蔽了链接内容。广告也少了。可是好景不长,发广告的人,又把目标转向了我的BLOG。。。。。我最气愤那些发广告的人,收了别人的钱,专门为别人加广告链接,为的是提高雇主的Google Page Rank。本来与我不相干的,可是你这样赚钱也太没良心了把。利己,但是却损了人。更可恶的是,让搜索引擎充满了垃圾。大大降低搜索效率。对此,对那些赚昧心钱的人,表示强烈的鄙视!!![lol]

垃圾广告的战火已经波及到我的BLOG。我决不姑息。今天又改了BLOG评论的ASP代码(虽然我ASP很久没用了。有点生疏,但是……天才总是什么一学就会的。哈哈)。BLOG屏蔽了广告链接的一些关键字。现在是凌晨1点多。(都是你们这些发垃圾广告的害的!![twisted])

本站宣言:抵抗垃圾广告到底,绝不姑息!!

VC中用Flash Control播放FLASH

发表于 2005-11-14 | 分类于 技术控 | | 阅读次数:
字数统计: 63 字 | 阅读时长 ≈ 1 分钟

project-》add to project-》components and controls

选择插入Shockwave Flash Object 控件。

工程中插入一个CShockwaveFlash类

然后,就可以定义一个CShockwaveFlash类的实例 CShockwaveFlash m_flash; m_flash.Create(NULL, WS_CHILD|WS_VISIBLE, CRect(0,0,200,200),this,2000); m_flash.LoadMovie(“swf文件绝对路径”); m_flash.Play();

I like shopping

发表于 2005-11-09 | 分类于 随笔 | | 阅读次数:
字数统计: 93 字 | 阅读时长 ≈ 1 分钟

在MS的ecompany shop买了一堆东西。期待我的蓝牙套件。以下是购物清单:

Original Line Items Your 6 original line items are: Item # Description Qty Status Price

-  MIC23019600 GrandPaws Brown Plush Bear 1 Shipped $14.99
-  MIC12014000 MSN Tumbler Orange 1 Shipped $6.99
-  MIC29041800 OpticalDsktp Elite Bluetooth 1 Shipped $100.00
-  MIC12016700 Revolutions Blue Tumbler 1 Shipped $14.99
-  MIC12012700 Stainless Steel Blue Tumbler 1 Shipped $6.99
-  MIC12009900 Xbox Plastic Insulated Tumbler 1 Shipped $6.00

Subtotal: $149.96

我们的海关??无语。。。。

发表于 2005-11-05 | 分类于 随笔 | | 阅读次数:
字数统计: 855 字 | 阅读时长 ≈ 3 分钟

MVP的礼品包今天才收到。今天在DHL上查了下跟踪信息。10月17号就从美国出发了。3天后,就到了中国。但是中途,因为海关的清关,以及清关延误,今天才收到包裹,看了看,已经是11月5号了。

DHL的快递从美国到中国,只要了3天,可是我们的海关,居然费了15天。。。。。 这是一次意外,还是巧合???[confused][confused][confused]我无语。。。。。。。

下面是我的包裹的跟踪信息。 最后居然转给了第三方投递,原来是中国邮政。呵呵。。。 =============================================

这些是您查找的结果

提供的时间是已记录的快件检查点中到达服务区域的当地时间。

运单号码   发件地服务区域   目的地服务区域   状态

7458448620   Bothell, WA - USA   East China Area - China, People's Republic   由于收件人地址有误, 快件无法派送

7458448620 - 详细报告

日期 时间 地点服务区域 检查点详细信息


十月 17, 2005 16:58 Bothell, WA - USA 快件已从发件人处提取

十月 17, 2005 17:41 Bothell, WA - USA 已离开发件地

十月 19, 2005 00:34 Los Angeles Gateway, CA - USA 已从DHL发件地出口 Los Angeles Gateway - USA

十月 19, 2005 03:10 Los Angeles Gateway, CA - USA 快件已在转运途中 Los Angeles Gateway - USA

十月 20, 2005 22:33 East China Area - China, People’s Republic 快件到达转运地 East China Area - China, People’s Republic

十月 20, 2005 22:33 East China Area - China, People’s Republic 快件已到达收件地海关,正在等候清关 East China Area - China, People’s Republic

十月 21, 2005 03:42 East China Area - China, People’s Republic 清关延误

十月 21, 2005 09:59 East China Area - China, People’s Republic 由于服务区域代码错误,快件已转运到正确收件地

十月 22, 2005 01:22 East China Area - China, People’s Republic 清关延误

十月 23, 2005 01:17 East China Area - China, People’s Republic 清关延误

十月 25, 2005 03:20 East China Area - China, People’s Republic 清关延误

十月 26, 2005 01:44 East China Area - China, People’s Republic 清关延误

十月 27, 2005 02:37 East China Area - China, People’s Republic 清关延误

十月 28, 2005 03:30 East China Area - China, People’s Republic 清关延误

十月 28, 2005 15:49 East China Area - China, People’s Republic 快件已从海关放行 East China Area - China, People’s Republic

十月 28, 2005 17:12 East China Area - China, People’s Republic 已从DHL发件地出口 East China Area - China, People’s Republic

十月 30, 2005 07:02 Hong Kong - Hub - Hong Kong 已从DHL发件地出口 Hong Kong - Hub - Hong Kong

十月 31, 2005 10:47 Chengdu - China, People’s Republic 快件到达转运地 Chengdu - China, People’s Republic

十月 31, 2005 10:47 Chengdu - China, People’s Republic 快件已到达收件地海关,正在等候清关 Chengdu - China, People’s Republic

十月 31, 2005 17:19 Chengdu - China, People’s Republic 快件正在清关中

十一月 01, 2005 17:07 Chengdu - China, People’s Republic 快件正在清关中

十一月 02, 2005 16:48 Chengdu - China, People’s Republic 快件正在清关中

十一月 03, 2005 11:37 Chengdu - China, People’s Republic 快件已从海关放行 Chengdu - China, People’s Republic

十一月 03, 2005 11:54 Chengdu - China, People’s Republic 已从DHL发件地出口 Chengdu - China, People’s Republic

十一月 03, 2005 13:07 Chengdu - China, People’s Republic 快件到达目的地国家

十一月 03, 2005 13:46 Chengdu - China, People’s Republic 快件转由第三方派送,无法提供派送结果

十一月 04, 2005 14:50 Chengdu - China, People’s Republic

无题

发表于 2005-11-03 | 分类于 随笔 | | 阅读次数:
字数统计: 297 字 | 阅读时长 ≈ 1 分钟

最近几天对网络服务器的设计比较感兴趣,比如各种网络模型,数据传输……等等 想做一个支持多人的信息、文件传输的一套C/S程序。咳咳~~ 之后我就会开始设计了,正在想给这个软件改个什么名字。HOHO~~[biggrin]

MVP的礼物现在还没有收到,唉~~先是被上海的海关卡住,后来又被成都海关卡住~~ 最后看到的追踪信息是转交给第三方办理了?DHL有第三方?难道是中国邮政??汗……[confused]

最近老是有人在我的网站(VC源动力)的留言本发广告URL,就是为了提高GOOGLE的page rank? 这样也太不对了吧?[rolleyes]为了提高自己的pr,扰乱本站的秩序,严重BS!![cool]。更不好的是让google充斥这些广告,大大降低了搜索效率。我索性把留言本提交的asp脚本加入了留言过滤,凡是带网页链接的留言通通挡获。(嘿嘿)。好像颇有成效。今天起来看了网页,已经没广告URL了。

牢骚发完了,继续工作、学习。。。

有点感冒了

发表于 2005-10-31 | 分类于 随笔 | | 阅读次数:
字数统计: 92 字 | 阅读时长 ≈ 1 分钟

今天起来连打几个喷嚏。。。。鼻子不畅通。。

前几天给VCKBASE(VC知识库)发了个文章投稿,是自己做的一个小控件。不过现在还没发布出来[confused] 期待中。。。

现在在公司都和绿茶了,据说有益健康。呵呵~~ 俺这种只喝可乐的人,现在也要学习学习品茶。

MVP有感

发表于 2005-10-31 | 分类于 随笔 | | 阅读次数:
字数统计: 153 字 | 阅读时长 ≈ 1 分钟

那天正在CSDN 的VC版务群和大家聊MVP的事情,鸟人收到了MVP名单,公布了出来。 我滑动着鼠标往下拉了拉菜单,一个熟悉的名字晃过,仔细一看,正是我的名字……

能成为MVP是我一直的梦想。没想到真的变成了现实。 回顾起刚去CSDN的时候,再想想现在,还有这个网站的建立,我确实学到了不少东西。 MVP也许是对我在编程路上的一种动力。

我在我的BLOG挂上了MVP的徽标,以此鼓励自己,不断进步。

1…394041…47
Timothy

Timothy

Timothy的技术博客,记录技术以及生活点滴

564 日志
8 分类
1187 标签
RSS
github twitter
Links
  • ZWWoOoOo
  • 花開未央
  • 守望轩
  • 大漠说程序
  • ChengBo
  • BlueAndHack
  • 程序员小辉
  • 子痕的博客
  • WoodenRobot
  • VPS大佬
  • 毕扬博客
  • VPSDad
  • 猫爪导航
  • ss1271的奋斗
  • Kian.Li
  • YoungForest
  • Fred's Blog
  • Jacklandrin
© 2025 Timothy
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4