我是学SDK的,请问,我在资源中创建了一个对话框,在其上添加了一个静态文本控件,控件内有文本“XIAOTT”,然后按照对话框的尺寸插入显示一个位图,当对话框运行后,可以看到位图与静态文本,但静态文本的背景色为默认的灰色,而我的位图是我找的一个风水图片,我想问的是,如何将静态文本的背景色改为其无色(也就是透明),从而显现出位图的背景(声明:静态文本内容是动态改变的!,如果不是这样的话,我就可以直接把文本内容做在图片中了!)????????????
调试欢乐多
int SetBkMode(
HDC hdc, // 控件窗口DC句柄
int iBkMode // 1是透明,0是不透明。
);
最后输出文字。
在这里我要改变静态文本的颜色,所以要这样用,当我调用了此函数后,背景为白色的!
case WM_CTLCOLORSTATIC:
iStaticDC=GetWindowLong ((HWND) lParam, GWL_ID);
if(iStaticDC ==IDC_EDIT1)
{
SetBkMode((HDC)wParam,1);//我在这里用,可是不用啊!
SetBkColor((HDC)wParam,RGB(255,175,200));
if(iEmail)SetTextColor((HDC)wParam,RGB(255,0,0));
return (LRESULT)hBrushStatic;
}
(总不能让我改变文本背景颜色吧,天知道与背景图案一致的颜色的RGB值!)
{
CRect rect(x, x, x, x); //矩形的大小随你要显示的字体大小而定
CFont ft;
ft.Detach();
ft.CreateFont(x - y, x - z, .......); //字体的创建随你显要显示的字体为准
PAINTSTRUCT paint;
CDC *pDC = BeginPaint(&paint);
pDC->SelectObject(&ft);
pDC->SetBKMode(TRANSPARENT); //不改变背景颜色
pDC->DrawText("XXX", &rect, DT_CENTER); //画出字体
EndPaint(&paint)
}