HBRUSH dlgtest::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
switch (nCtlColor)
{
case CTLCOLOR_BTN://按钮?
case CTLCOLOR_STATIC://我们所需要改画的静态
{
pDC->SetBkMode(TRANSPARENT);//透明
}
//其他东西
}
return(CDialog::OnCtlColor(pDC, pWnd, nCtlColor));
}
{
switch (nCtlColor)
{
case CTLCOLOR_BTN://按钮?
case CTLCOLOR_STATIC://我们所需要改画的静态
{
pDC->SetBkMode(TRANSPARENT);//透明
}
//其他东西
}
return(CDialog::OnCtlColor(pDC, pWnd, nCtlColor));
}
解决方案 »
- VS2008 问题
- 动态创建弹出菜成功,但之后出现程序崩溃
- DLL中的全局变量问题
- VC操作Excel:如何保存Excel文件。是利用Excel9.cpp(或Excel.cpp)中哪个类,哪个函数??
- 关于vc里md5加密字符串。
- 结构体相等的条件是什么?
- 服务器端发送图片给客户端如何实现?
- 子窗口如何全屏显示?
- 既然atl使用ATL_NO_VTABLE(实际上也就是__declspec(novtalbe))去掉了vtable,那么我们在调该对象的接口成员函数时是如何实现的呢??
- 用CPaintDC的TextOut怎么写出带颜色的字??简单问题给40分。
- 有关获取HTML中Frames的问题?
- 删除一个文件该怎么做?
button ListCtrl 就完了
根本透明不了
要透明button 咋办?
pDC->SetBkMode(TRANSPARENT);//透明
CTLCOLOR_BTN Button control
CTLCOLOR_DLG Dialog box
CTLCOLOR_EDIT Edit control
CTLCOLOR_LISTBOX List-box control
CTLCOLOR_MSGBOX Message box
CTLCOLOR_SCROLLBAR Scroll-bar control
CTLCOLOR_STATIC Static control
真的是不行啊,我试过了,用OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
只能让static和Edit透明,而且Edit一旦超过他的一行范围,就重叠起来,黑乎乎的一片
而对button,ListView跟本就没门儿
你在AfxRegisterWndClass( UINT nClassStyle, HCURSOR hCursor = 0, HBRUSH hbrBackground = 0, HICON hIcon = 0 );
时背景画刷设成0,包透明。
和CDC的保存和恢复有关
我是在创建一个和BMP相关的DC的时候碰到的。
要不,你能否给俺个例子瞅瞅,岸实在是没法度了
To Michael_yu(Michael_yu)能告诉我详细一点吗?
To ForApply(yinyong)
那你能否告诉俺,你是咋解决的?这里不是俺的贴子,按没法给大家分
请到http://www.csdn.net/expert/topic/163/163961.shtm
里来讨论,谢谢
其实,我这样写已经超出了”透明”的问题.自己写控制你可以很随意。而且如果你再把CWnd抽象一下的话,你的控制库可以比较方便的移植在不同的os上。
这个工程比较大,不过你可以从你需要的开始不用实现所有的成员。比如CButton,我估计一般的程序员30分钟就可以写好。