哪位高手在WinCE编写过自己的图形控件?例如:一个心型按钮什么的。请指教,谢谢!
贴图的话,还是有方形的边框的。如果是图形控件的话,应该是各种形状的吧?
可以使用CBitmapButton类,我看了一下,evc里有这个类,就不知道是不是好用,没有试。
CBitmapButton* m_pBtn;
// 按钮控件加载按钮资源
m_pBtn->AutoLoad(IDC_BUTTON_XXX,this);
// 按钮加载位图资源
m_pBtn->LoadBitmaps(IDB_BMPX,0,0,IDB_BMPY);
// 设置按钮大小适合于贴图大小
m_pBtn->SizeToContent();
用TransParentBlt函数,可以将背景透明显示,把你要做的控件背景透明就可以,还有第二个方法,写个控件子窗口过程,把图片贴进去,根据需要改变,这个方法图像更舒服,不会有毛刺。
所谓的心型控件,其实还是方形的,只是做的效果象心型
TransParentBlt 没错可以实现透明,但是如果背景是确定的,即可以实现,要是控件移位,那背景就变化了,也就不出效果了。
只用 上面的API实现透明的方法只能是控件的背景和父窗口的背景餐是一样的,否则不成立
谢谢大家,我顺便问一下各位,TransParentBlt 函数是不是能够把一副位图的背景变为透明而显示父窗口的背景啊?
这个API是把指定RGB变成透明。只用这个API是可以做出心形按钮的,并不需要其他的,至于点击的范围,可以用一个坐标数组进行过滤。
To:zzhll
CBitmapButton* m_pBtn;
// 按钮控件加载按钮资源
m_pBtn->AutoLoad(IDC_BUTTON_XXX,this);
// 按钮加载位图资源
m_pBtn->LoadBitmaps(IDB_BMPX,0,0,IDB_BMPY);
// 设置按钮大小适合于贴图大小
m_pBtn->SizeToContent();
不好用,没有把图片贴上去。IDC_BUTTON_XXX应该是button按钮的ID吧?IDB_BMPX和IDB_BMPY应该是载入的位图吧?可是还是没有贴上去。(而且我已经把Owner Draw属性选上了)还是没有用。
我在每行代码后面分别添加了输出语句以后才发现,运行到m_pBtn->AutoLoad(IDC_BUTTON_XXX,this); 之后就内存报错了。
还有一点要提得就是:编译以后有一个Warning:warning C4700: local variable 'm_pBtn' used without having been initialized
请知道原因的大侠指点,谢谢!
CBitmapButton* m_pBtn;
m_pBtn = new CBitmapButton; //最后要delete m_pBtn; m_pBtn = NULL;
// 按钮控件加载按钮资源
m_pBtn->AutoLoad(IDC_BUTTON_XXX,this);