WindowsCE下的GUI编程(一)
来源:互联网 发布:淘宝店虚拟产品货源 编辑:程序博客网 时间:2024/05/29 17:47
WindosCE有一个非常大的优点,就是在显示方面. 如果只要大家多花点时间,基本上完全可以实现一个非常漂亮的界面.
所有的界面都是基于Dailog. 因此首先选择的Dailog是非常必要的.
1. 利用MFC建立一个基于对话框的工程.
2. 为了达到理想效果,需要多这个默认对话框进行设置. 修改Dailog的风格.
2.1 风格设置如下: Style 选择Child ; Border 选择 None. 其他不变
3. 修改背景. 在View 里面重载 ON_WM_INITDIALOG 和 ON_WM_PAINT这两个消息.
4. 添加成员变量: CDC m_dcBack; CBitmap m_bmpBack;
5. 在OnInitDialog: 里添加如下代码:
CRect rectClient;
GetClientRect(&rectClient);
CBrush brushBack;
brushBack.CreateSolidBrush(CL_BTMP_BK_MAIN) ;//CL_BTMP_BKMAIN 为背景颜色
CClientDC dc(this);
//创建表格设备环境以及创建相应缓冲区
if (m_dcBack.GetSafeHdc() == NULL)
{
m_dcBack.CreateCompatibleDC(&dc);
m_bmpBack.CreateCompatibleBitmap(&dc,rectClient.Width(),rectClient.Height());
m_dcBack.SelectObject(&m_bmpBack);
}
//设置背景颜色
m_dcBack.SetBkColor(CL_BTMP_BK_MAIN);
m_dcBack.FillRect(rectClient,&brushBack);
6. 在OnPaint添加如下代码:
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
CDC memDC ;
CBitmap memBitmap ;
CBitmap* oldBitmap ;
CRect rectClient;
GetClientRect(&rectClient) ;
memDC.CreateCompatibleDC(&dc) ;
memBitmap.CreateCompatibleBitmap(&dc, rectClient.Width(), rectClient.Height()) ;
oldBitmap = (CBitmap *)memDC.SelectObject(&memBitmap) ;
//将m_dcCoor和m_dcLine绘制到控件上
if (memDC.GetSafeHdc() != NULL)
{
memDC.BitBlt(0, 0, rectClient.Width(), rectClient.Height(),
&m_dcBack, 0, 0, SRCCOPY) ;
dc.BitBlt(0, 0, rectClient.Width(), rectClient.Height(),
&memDC, 0, 0, SRCCOPY) ;
}
memDC.SelectObject(oldBitmap) ;
//删除内存位图GDI对象
memBitmap.DeleteObject();
//删除内存绘图环境
memDC.DeleteDC();
// Do not call CDialog::OnPaint() for painting messages
7. 经过以上代码 就可以改变Dailog的背景颜色了.
8. 当然也可以添加图片. 注意这个图片要256色的bmp的格式
9. 添加背景图片代码: 只要在第6步的基础上添加一下代码即可
//初始化背景图片
CBitmap bmp;
BITMAP bm;
CDC memDC;
memDC.CreateCompatibleDC(&m_dcBack);
if(bmp.LoadBitmap(IDB_BMP)) //IDB_BMP为背景图片的ID
{
bmp.GetBitmap(&bm);
memDC.SelectObject(&bmp);
m_dcBack.StretchBlt(0,0,118,72,&memDC,0,0, //适当调整位置和大小,就可以显示相应的图片了
bm.bmWidth,bm.bmHeight,SRCCOPY);
}
bmp.DeleteObject();
memDC.DeleteDC();
- WindowsCE下的GUI编程(一)
- 日志一:GUI的初始和GUI编程初步
- Linux下的C++ GUI编程
- LINUX 下的GUI编程 学习收获
- GUI编程(一)
- GUI编程【一】
- WindowsCE.Net下CAN卡的驱动程序设计
- WindowsCE环境下无线网卡的自动安装
- 在windowsCE下生成交叉编译器的具体步骤和注意事项
- WindowsCE环境下无线网卡的自动安装
- WindowsCE.Net下CAN卡的驱动程序设计
- windowsCE驱动程序的分类
- WindowsCE
- python的GUI编程(Tkinter库)(一)
- dialog shell下的gui设计 代替繁杂libncurses编程
- [AppArmor-GUI]一、Ubuntu下Qt开发环境的搭建
- AWT的GUI编程
- Python的GUI编程
- 关于spring中抛出NotWritablePropertyException异常的问题
- npkcrypt.sys
- 双显卡方案
- 巧用批处理快删空文件夹
- javascript 读取数据库
- WindowsCE下的GUI编程(一)
- windows批处理
- 怎么把表1的销售额存入表2啊!
- c#.net常用的小函数集1
- 请教 各位大侠 用sql语句,能否创建,修改,删除列描述
- C# 树型控件
- 求解exists子查询执行机制或原理问题
- 学习Curl的体会(一)——取模和取余是不一样的。
- 信息部门人员角色划分及任职资格