关于在控件上显示位图问题!!?代码如下:
在对话框的初始化中:
DWORD style = m_display.GetStyle () ;
style |= SS_BITMAP | SS_CENTERIMAGE ;
::SetWindowLong (m_display.GetSafeHwnd(), GWL_STYLE, style) ;
m_display.SetBitmap(::LoadBitmap(NULL, MAKEINTRESOURCE(IDB_BMP)));
其中m_display是static text 空件。
且定义:CStatic m_display;
可是为什么不能显示位图呢?小第苦恼!
问题点数:20、回复次数:9Top
1 楼zwcboys(kkkdy)回复于 2002-05-21 18:14:14 得分 0
up!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Top
2 楼littlepudding()回复于 2002-05-21 18:28:36 得分 5
有DDX_Control(pDX, STATICID, m_display)吗Top
3 楼zwcboys(kkkdy)回复于 2002-05-21 19:24:54 得分 0
有呀!
Top
4 楼littlepudding()回复于 2002-05-21 19:59:17 得分 0
那你把这段代码写到onCtlColor中试试Top
5 楼lanzhengpeng2(兰征鹏)回复于 2002-05-21 20:14:07 得分 5
static text 控件没有这个属性,不要白忙活了。Top
6 楼eastrock(东方之石)回复于 2002-05-21 20:19:12 得分 2
我同意楼上的说法Top
7 楼hamiltonlzk()回复于 2002-05-21 21:26:30 得分 5
我帮你解决了!
这其实是微软的一个bug,在win98下好像可以的。我的是win2000,和你一样不行的。
我的做法是:首先在对话框上选了一个Picture控件,然后将它设成是bitmap类型。然后将其映射为一个CStatic控件,
然后用以下代码显示位图:
CBitmap bitmap;
bitmap.LoadBitmap(IDB_BITMAP);
((CStatic*)GetDlgItem(IDC_STATIC))->SetBitmap((HBITMAP)bitmap.GetSafeHandle());
这里还有一点只能由指针调用SetBitmap(),不能用对象直接调用。
还有不能用 ::LoadBitmap(NULL, MAKEINTRESOURCE(IDB_BITMAP)) );获得HBITMAP,我试过了,不起作用。我也不知道为什么?呵呵!
看看满不满意,快给分哦!
Top
8 楼superxiang2000(编程)回复于 2002-05-22 08:21:17 得分 3
style |= SS_BITMAP | SS_CENTERIMAGE|SETBITMAP ;
Top
9 楼zwcboys(kkkdy)回复于 2002-05-22 08:58:08 得分 0
好的好的,马上派份!Top




