图形控件

watersondf   2008-5-23 21:31 楼主
哪位高手在WinCE编写过自己的图形控件?例如:一个心型按钮什么的。请指教,谢谢!

回复评论 (14)

哪位大侠知道的,请指点迷津。谢谢!
点赞  2008-5-24 21:34
贴个图不就行了,CE上和WINXP上是一样的。
点赞  2008-5-26 10:04
贴图的话,还是有方形的边框的。如果是图形控件的话,应该是各种形状的吧?
点赞  2008-5-26 10:29
可以使用CBitmapButton类,我看了一下,evc里有这个类,就不知道是不是好用,没有试。

CBitmapButton* m_pBtn;

// 按钮控件加载按钮资源
m_pBtn->AutoLoad(IDC_BUTTON_XXX,this);
// 按钮加载位图资源
m_pBtn->LoadBitmaps(IDB_BMPX,0,0,IDB_BMPY);
// 设置按钮大小适合于贴图大小
m_pBtn->SizeToContent();
点赞  2008-5-26 11:04
用TransParentBlt函数,可以将背景透明显示,把你要做的控件背景透明就可以,还有第二个方法,写个控件子窗口过程,把图片贴进去,根据需要改变,这个方法图像更舒服,不会有毛刺。
点赞  2008-5-27 10:11
谢谢大家,我试试看.
点赞  2008-5-27 10:26
所谓的心型控件,其实还是方形的,只是做的效果象心型
点赞  2008-5-27 10:52
TransParentBlt 没错可以实现透明,但是如果背景是确定的,即可以实现,要是控件移位,那背景就变化了,也就不出效果了。
只用 上面的API实现透明的方法只能是控件的背景和父窗口的背景餐是一样的,否则不成立
点赞  2008-5-27 12:09
谢谢大家,我顺便问一下各位,TransParentBlt 函数是不是能够把一副位图的背景变为透明而显示父窗口的背景啊?
点赞  2008-5-28 10:10
这个API是把指定RGB变成透明。只用这个API是可以做出心形按钮的,并不需要其他的,至于点击的范围,可以用一个坐标数组进行过滤。
点赞  2008-5-29 18:36
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属性选上了)还是没有用。
点赞  2008-5-31 00:37
我在每行代码后面分别添加了输出语句以后才发现,运行到m_pBtn->AutoLoad(IDC_BUTTON_XXX,this); 之后就内存报错了。
还有一点要提得就是:编译以后有一个Warning:warning C4700: local variable 'm_pBtn' used without having been initialized
请知道原因的大侠指点,谢谢!
点赞  2008-6-1 01:36
  CBitmapButton* m_pBtn;

  m_pBtn = new CBitmapButton;      //最后要delete m_pBtn; m_pBtn = NULL;
  // 按钮控件加载按钮资源
    m_pBtn->AutoLoad(IDC_BUTTON_XXX,this);


点赞  2008-6-2 09:30
谢谢!可以用了 !
点赞  2008-6-2 11:17
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复