Image控件和ComboBox控件的问题
1,IMAGE的大小为49×49,Stretch为true,加载的图片为50×60,开始时整个图片变得像是只有16色,失真很严重,后来没理他,编着编着,不知道哪改了什么就变正常了,但是只要动态加载一张图片就又会变得好像只有16色得样子,
加载方法如下
BMP1->Canvas->BrushCopy( rcDesk, BMP2, rcSource, clBlack);
//从别得图片上剪一块矩阵贴到BMP1上,
Clipboard()->Assign(BMP1);
Image1->Picture->Assign(Clipboard());
//通过剪切板复制到Image控件上
(刚开始没用剪切的办法,直接用BRUSHCOPY复制过来,也会这样)
2,我不知道这个怎么说,比如我选择了ComboBox的第三个选项时,再次点击下拉按钮,第三个会与其他的选项不同,背景为黑色,其他都还是白的,我现在想动态恢复默认,ComboBox1->ItemIndex = 0;但是虽然编辑框上显示的是第0个的值,但点了下拉键后,背景为黑色的还是第三个,不是第0个
问题比较菜,请见凉!
问题点数:50、回复次数:8Top
1 楼weibz0525(小虫)回复于 2003-12-03 08:49:43 得分 10
1
BMP2->PixelFormat=BMP1->PixelFormat;
BMP1->Canvas->BrushCopy( rcDesk, BMP2, rcSource, clBlack);
这样写试一下
2
不是太明白,我想你可能需要手动恢复到默认,包括bmp显示也应该重画
Top
2 楼goneaway1981(当我们踏上征程)回复于 2003-12-03 13:14:44 得分 0
帮忙顶!!!1Top
3 楼gzxb(老白)回复于 2003-12-03 19:48:43 得分 0
weibz0525(小虫) ,我试过了,可还是不行,您看看是不是别的什么地方不对啊,我直接在设计时加载那张图片都正确的,是不是方法上有问题啊Top
4 楼constantine(飘遥的安吉儿)回复于 2003-12-03 20:37:20 得分 10
1.用CopyRect();直接区域拷贝就可以了。如果要拉伸图象,按区域的大小拷进去后在调整长宽,Stretch还是为true。
2.这个问题不是很明白,不知道是我理解错还是....就你所说的一般是不会的,可能是偶然事件,你的BCB那里有问题也有可能,哈哈...Top
5 楼pzoon(杀死日本人)回复于 2003-12-03 21:02:03 得分 0
重新做系统,重新安装BCB,去找BORLAND算帐Top
6 楼gzxb(老白)回复于 2003-12-04 10:06:09 得分 0
如果用CopyRect()考进去,再调节大小,会把图象裁剪掉,而不能起到Stretch的效果,请问是怎么回事???Top
7 楼gzxb(老白)回复于 2003-12-05 20:26:37 得分 0
upTop
8 楼yjy1001(蓝鲸--优秀得郁闷的鱼)回复于 2003-12-11 13:39:10 得分 30
copyrect 是不会裁剪图象的,是你的rect没定义好的缘故
copyrect 可以缩小、放大图象
你的问题,根本不需要经过 剪切板这么麻烦
代码如下:
TRect rt1,rt2;
rt1 = Rect(0, 0, BMP1->Width, BMP1->Height);
rt2 = Rect(0, 0, BMP2->Width, BMP2->Height);
BMP1->Canvas->CopyRect(rt1, BMP2->Canvas, rt2);
Image1 也是一样,只要定义不同的rect来拷贝就行了
问题2:把父类的 字体设置得跟 ComboBox的字体完全一样 。
比如,如果ComboBox是在Form1上,把Form1的字体设置得跟 ComboBox 一样。Top




