VC++界面编程之--自定义标签控件(CStatic)皮肤
来源:互联网 发布:java 接口方法 public 编辑:程序博客网 时间:2024/05/03 14:02
IPhone聊天泡泡是个很不错的控件,因为它能很友好的给用户一些简短的提示信息,而不失美观。
我也想将这个泡泡,加到我的界面上,用做一些小提示:)
用什么控件做好呢?当然是CStatic控件啦,我就是喜欢CStatic的简单,易扩展性强。只要你有一个好的GDI描绘创意,就能将其效果弄得千变万化。
废话不多说,直接上使用步骤:
1. 设置父窗口,用于获取父窗口的背景画刷:
void SetThemeParent(const HWND hWnd){ATLASSERT(::IsWindow(hWnd));m_wndParent = hWnd;}
2. 设置背景图片,背景图片推荐PNG格式的,因为其支持透明色,而不会像BMP那么大。
void SetBackgroundImage(const int nImageID){ATLASSERT(nImageID > 0);m_imgBack.Load_Image(nImageID, _T("PNG"));DrawLabel();}
3. 设置文本对其方式,我这里用的是GDI+文本对其方式:
// Set text format.void SetTextAlign(const StringAlignment align){m_TextAlign = align;DrawLabel();}
4. 调整文本位置,因为有些图片与文字之间的位置,需要做些许移动,才能对称:
// Adjust text position.void AdjustTextPos(const int nTop, const int nLeft){m_nTextTop = nTop;m_nTextLeft = nLeft;DrawLabel();}
5. 设置字体,这里使用CStatic默认的函数。但须注意:一旦设置字体时,需要捕获WM_SETFONT消息,获取新设置的字体,以刷新为最新的字体:
LRESULT OnSetFont(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& bHandled){m_Font.DeleteOldFont();CPaintDC dc(m_hWnd);m_Font.m_Font = new Font(dc, (HFONT) wParam);DrawLabel();bHandled = FALSE;return 0;}
本文工程代码免费下载链接:http://download.csdn.net/detail/renstarone/6239655
- VC++界面编程之--自定义标签控件(CStatic)皮肤
- VC++界面编程之--自定义进度条(CProgressBar)皮肤
- VC++界面编程之--自定义CButton(按钮)皮肤
- VC++界面编程之--自定义CEdit(编辑框)皮肤
- VC++界面编程之--实现工具栏自定义皮肤
- VC++界面编程之--使用分层窗口实现界面皮肤
- VC/MFC CStatic控件用法
- Android自定义控件之酷狗音乐皮肤界面缩放预览
- VC++标签控件之图像标签控件
- vc皮肤控件
- DotNet(C#)自定义控件之界面编程(一)
- 界面美化.CStatic控件的美化
- Android自定义控件皮肤
- android:自定义控件皮肤
- android--自定义控件皮肤
- 可以编辑的标签控件CStatic
- VC 在CStatic控件上绘图
- VC++ : CStatic控件的基本使用
- 编程练习 第九章
- IOS Layer的使用
- C++引用本质
- zoj2770解题报告(差分约束)
- android 常用时间格式转换代码
- VC++界面编程之--自定义标签控件(CStatic)皮肤
- UVa 100 The 3n + 1 problem
- hdu 1233 还是畅通工程 Kruskal 最小生成树 并查集
- JDK1.6官方下载_JDK6官方下载地址
- Who is lier?
- Excel 2007导入数据到SQL Server 2005
- Android入门笔记之BroadcastReceiver
- gcc 链接顺序
- OpenCV中遇到Microsoft C++ 异常 cv::Exception