真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MFC10環(huán)境下用MFC4的方法實(shí)現(xiàn)CEdit透明-創(chuàng)新互聯(lián)

轉(zhuǎn)載請(qǐng)注明來(lái)源:http://www.cnblogs.com/xuesongshu/

創(chuàng)新互聯(lián)專(zhuān)注于企業(yè)全網(wǎng)整合營(yíng)銷(xiāo)推廣、網(wǎng)站重做改版、滁州網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁(yè)面制作、成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性?xún)r(jià)比高,為滁州等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

在創(chuàng)建MFC項(xiàng)目的時(shí)候最后一步把窗口繼承的類(lèi)由CDialogEx改為CDialog。這一步很重要哦。

用類(lèi)向?qū)?shí)現(xiàn)窗口的WM_CTLCOLOR,代碼如下:

HBRUSH CAlphaEditMfc10Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { //HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: 在此更改 DC 的任何特性 pDC->SetBkMode(TRANSPARENT); return (HBRUSH)GetStockObject(NULL_BRUSH); // TODO: 如果默認(rèn)的不是所需畫(huà)筆,則返回另一個(gè)畫(huà)筆 //return hbr; }

導(dǎo)入一張位圖,把OnPaint改一改:

void CAlphaEditMfc10Dlg::OnPaint() { CPaintDC dc(this); // 用于繪制的設(shè)備上下文 CRect rect; GetClientRect(&rect); if (IsIconic()) { SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0); // 使圖標(biāo)在工作區(qū)矩形中居中 int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // 繪制圖標(biāo) dc.DrawIcon(x, y, m_hIcon); } else { //CDialog::OnPaint(); CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); CBrush br; br.CreatePatternBrush(&bmp); dc.FillRect(&rect,&br); } }

用代碼改為全透明之后下面的按鈕太難看,把它子類(lèi)化,實(shí)現(xiàn)WM_PAINT消息:

void CMyButton::OnPaint() { PAINTSTRUCT ps; CPaintDC* dc=(CPaintDC*)BeginPaint(&ps); // device context for painting // TODO: 在此處添加消息處理程序代碼 // 不為繪圖消息調(diào)用 CButton::OnPaint() dc->SetBkMode(TRANSPARENT); dc->SelectObject(GetStockObject(NULL_BRUSH)); dc->SelectObject(CreatePen(PS_DOT,1,RGB(255,0,0))); LOGFONT lf; memset(&lf,0,sizeof(LOGFONT)); lstrcpy(lf.lfFaceName,L"微軟雅黑"); lf.lfHeight=24; dc->SelectObject(CreateFontIndirect(&lf)); dc->Rectangle(ps.rcPaint.left,ps.rcPaint.top,ps.rcPaint.right,ps.rcPaint.bottom); dc->DrawText(L"確定",2,&ps.rcPaint,DT_CENTER|DT_VCENTER); EndPaint(&ps); }

CEdit透明之后需要實(shí)現(xiàn)一個(gè)EN_CHANGE消息,否則文件刪除就像沒(méi)刪一樣:

void CAlphaEditMfc10Dlg::OnChangeEdit1() { // TODO: 如果該控件是 RICHEDIT 控件,它將不 // 發(fā)送此通知,除非重寫(xiě) CDialog::OnInitDialog() // 函數(shù)并調(diào)用 CRichEditCtrl().SetEventMask(), // 同時(shí)將 ENM_CHANGE 標(biāo)志“或”運(yùn)算到掩碼中。 // TODO: 在此添加控件通知處理程序代碼 RECT r; GetDlgItem(IDC_EDIT1)->GetWindowRect(&r); ScreenToClient(&r); InvalidateRect(&r,TRUE); }

好了,運(yùn)行效果如下:


分享文章:MFC10環(huán)境下用MFC4的方法實(shí)現(xiàn)CEdit透明-創(chuàng)新互聯(lián)
文章起源:http://weahome.cn/article/cceosp.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部