深圳通银联自助充值系统吐槽

1. 如果你只是想自助地在深圳地铁站里查询一下深圳通卡里的余额,想必你不知道要点下图触屏上的哪个按钮。

 

05

2. 充值的过程中是要插入银联卡,用户把银联卡插进去后,它会提示说你插的银联卡号是不是“xxxx xxxx xxxx xxxx”。我的卡已经插在机器上了,你说我怎么知道我卡号是什么?

说实话,政府做的这类东西体验实在是烂。

谷歌日历的事件邀请邮件 中英文区别

Unnamed QQ Screenshot20140605141712

你可以对比上面的中英文对比,
我最开始有疑问的是中文界面的“是,也许,否”这三个按钮,我不明白我点击“是”是什么意思。
而你看英文的,它在“Yes”的左边会有个Going?
这样你就明白这中文界面做得是有多差了吧。
我刚才还注意到,在地点那行,英文是有个“map”,而中文却没有,搞不懂谷歌为什么这么简单的东西会做不好。

TrackMouseEvent

一个用来判断鼠标是否在其上面或者离开的函数,
在MouseMove中调用,然后以会发送两个自定义消息OnMouseLeave和OnMouseHover,
在MouseMove中可以大概这么写:
if (!m_tracking)
{
TRACKMOUSEEVENT t = {
sizeof(TRACKMOUSEEVENT),
TME_LEAVE,
m_hWnd,
0
};
if (::_TrackMouseEvent(&t))
{
//TRACE(“* Mouse enter\n”);
m_tracking = true;
Invalidate();
}
}

添加MouseLeave消息写法:
afx_msg LRESULT OnMouseLeave(WPARAM, LPARAM);
ON_MESSAGE(WM_MOUSELEAVE, OnMouseLeave)
LRESULT CxSkinButton::OnMouseLeave(WPARAM, LPARAM)
{

}

A user draw button that supports PNG files with transparency, for Visual C++ 6.0 and VS2005

文章链接:http://www.codeproject.com/Articles/26887/A-user-draw-button-that-supports-PNG-files-with-tr

实话说,这个button类真是不太好用。
我倒腾了半天,也没有做出他那样的效果。
1.首先得添加gdi plus的环境
2.要添加进来的那几个文件中CMemDC会跟系统自带的冲突,重定义了,只得改类名,比如改为CMemDC1
3.得自己设置按钮的size

 

创建不规则对话框

MFC,VS2008,Win7 64位
先把底图(bg.bmp)中要扣掉的部分ps成RGB(255, 255, 255)
在OnInitdialog里

bmp_Seperator.LoadBitmap( IDB_SEPERATOR );

if ( bmp_Seperator.GetSafeHandle() )
{
CRect nocheck_rc(0,0,500,300);  //这个是bg.bmp的size
RegionWindow( &bmp_Seperator, nocheck_rc.left, nocheck_rc.top, nocheck_rc.right, nocheck_rc.bottom );
}

void CxxxDlg::RegionWindow( CBitmap* p, int left, int top, int right, int bottom )
{
CDC memDC;
memDC.CreateCompatibleDC( GetDC() );
CBitmap* pOldBitmap = memDC.SelectObject( p );
CRgn rgnWnd, rgnTemp;
CRect rectWnd;
GetWindowRect( &rectWnd );
rgnWnd.CreateRectRgn( 0, 0, rectWnd.Width(), rectWnd.Height() );
COLORREF color;
for ( long x = left; x < right; x ++ )
{
for ( long y = top; y < bottom; y ++ )
{
color = memDC.GetPixel( x, y );
if ( color == RGB(255,0,255) ) // bg.bmp中要抠掉的颜色
{
rgnTemp.CreateRectRgn( x, y, x+1, y+1 );
rgnWnd.CombineRgn( &rgnWnd, &rgnTemp, RGN_XOR );
rgnTemp.DeleteObject();
}
}
}
memDC.SelectObject( pOldBitmap );
SetWindowRgn( (HRGN)rgnWnd,TRUE );
}

PNG透明窗体全攻略(控件不透明)

http://blog.csdn.net/srxumin/article/details/4410917
效果还挺不错的
缺点也是很明显的,这篇文章的下文有很多人在讨论,贴上的控件周围可能会有红红的一圈。
我们当时要实现的效果是在这个的基础上,实现在上面放几个不规则的按钮,我们试用了以下两个按钮类,这两个类都带有按钮的4种状态(正常,鼠标划过,鼠标按下,禁用)
xSkinButton
PNGButton
1. 用xSkinButton,把它的mask参数加起来,但这样只有在鼠标移到其按钮上的图标时,才会响应Over消息,我们是想鼠标一移动到按钮的矩形区域就响应Over消息
而且那张mask的底图还得抠得很细才行,否则会有其它颜色在边缘。
2. PNGButton解决了xSkinButton的缺点,但它的底色会被刷得有点粉红色;
两者都会有的情况是:在按钮的边缘,会有一圈粉红色,这个问题一直不知道怎么解决。