HBRUSH CDlgDevQuery::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CBCGPDialog::OnCtlColor(pDC, pWnd, nCtlColor);
CFont Font;
Font.CreateFont(28,0,0,0,0,FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,_T("微軟雅黑"));
switch (nCtlColor) {
case CTLCOLOR_DLG: // 對話框
case CTLCOLOR_EDIT: // 編輯框
//case CTLCOLOR_LISTBOX: //列表框
case CTLCOLOR_MSGBOX: // 消息框
case CTLCOLOR_SCROLLBAR: // 滑動條
case CTLCOLOR_STATIC: //靜態(tài)文本框、矩形等。
case CTLCOLOR_BTN: //按鈕
//pDC->SetBkColor(RGB(25,26,30));
//pDC->SetTextColor(RGB(255,255,255)); //設(shè)置字體顏色
//break;
{
//pDC->SetBkMode(0);
//HBRUSH B = CreateSolidBrush( RGB(25,26,30));
//return (HBRUSH) B;
pDC->SetBkMode(TRANSPARENT);
//pDC->SetBkColor(RGB(255,255,255));
//pDC->SelectObject(&Font);
return (HBRUSH)::GetStockObject(NULL_BRUSH);
}
//default: //其他控件設(shè)置自己默認的顏色和背景刷.
// return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
}
return hbr;
2、設(shè)置透明窗口屬性(在OnInitDialog函數(shù)中):
//加入WS_EX_LAYERED擴展屬性
SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);//設(shè)置背景透明屬性3、添加實現(xiàn)透明度函數(shù):
參數(shù) transparency):透明度值
void CTestDlg::SetLayeredWindow(int transparency)
{
HINSTANCE hInst = LoadLibrary(_T("User32.DLL"));
if(hInst)
{
typedef BOOL (WINAPI *MYFUNC)(HWND,COLORREF,BYTE,DWORD);
MYFUNC fun = NULL;
//取得SetLayeredWindowAttributes函數(shù)指針
fun=(MYFUNC)GetProcAddress(hInst, "SetLayeredWindowAttributes");
if(fun)fun(this->GetSafeHwnd(),0,(BYTE)transparency,2);
//如果設(shè)置為1,那么將設(shè)置RGB(0,0,0)顏色的透明度:220
//if(fun)fun(this->GetSafeHwnd(),RGB(0,0,0),220,1);
FreeLibrary(hInst);
}
}
添加Slider控件及綁定變量m_Slider
在OnInitDialog,設(shè)置范圍:15-255(因為透明度的值范圍為:0-255,而0的話,到時對話框?qū)ソ裹c而消失)
同時設(shè)置透明度初始值,代碼如下:
m_Slider.SetRange(15,255);//設(shè)置滑動范圍
m_Slider.SetPos(255);//設(shè)置滑動初始位置
SetLayeredWindow(255);//初始為正常窗口(透明度值:255)