亚洲免费乱码视频,日韩 欧美 国产 动漫 一区,97在线观看免费视频播国产,中文字幕亚洲图片

      1. <legend id="ppnor"></legend>

      2. 
        
        <sup id="ppnor"><input id="ppnor"></input></sup>
        <s id="ppnor"></s>

        用C++品嘗Vista美味[5]

        字號:

        如果composition未打開,我們用GDI函數繪制文本:
            else
            {
            const UINT uFormat = DT_SINGLELINE|DT_CENTER|DT_VCENTER|DT_NOPREFIX;
            //設置好DC
            dc.SetTextColor ( RGB(255,255,255) );
            dc.SelectFont ( m_font );
            dc.SetBkMode ( TRANSPARENT );
            //繪制文本
            dc.DrawText ( szTime, -1, rcText, uFormat );
            }
            return true; //我們繪制了整個背景
            }
            為演示發(fā)光效果,下面是同一背景上的一段文本,但沒有發(fā)光效果:
            處理composition相關的通知
            當DWM的composition狀態(tài)打開或關閉時,系統(tǒng)會向所有頂層窗口廣播一個WM_DWMCOMPOSITIONCHANGED消息;如果composition為打開,需要再次調用DwmExtendFrameIntoClientArea()以告之DWM,我們窗口的哪一部分應為毛玻璃效果:
            LRESULT CMainFrame::OnCompositionChanged(...)
            {
            if ( IsCompositionEnabled() )
            {
            MARGINS mar = {0};
            mar.cyBottomHeight = 100;
            DwmExtendFrameIntoClientArea ( m_hWnd, &mar );
            }
            return 0;
            }
            在對話框程序中應用毛玻璃效果
            在對話框程序中添加毛玻璃效果的過程,與上面框架窗口的例子非常相似,但需要對代碼作一些輕微的改動。在示例對話框程序中為頂層窗口添加了毛玻璃效果,下面,相對前一例子作了修改或添加的代碼,將以黑體字標出。
            設置對話框
            如之前一樣,要告之CThemeImpl我們要使用哪個窗口類主題,并調用DwmExtendFrameIntoClientArea()為窗口邊框添加毛玻璃效果。
            CMainDlg::CMainDlg()
            {
            SetThemeClassList ( L"globals" );
            }
            BOOL CMainDlg::OnInitDialog ( HWND hwndFocus, LPARAM lParam )
            {
            //刪除了向導生成的某些初始化代碼
            //為頂層窗口添加毛玻璃效果
            if ( IsCompositionEnabled() )
            {
            MARGINS mar = {0};
            mar.cyTopHeight = 150;
            DwmExtendFrameIntoClientArea ( m_hWnd, &mar );
            }
            接下來,構建文本字體。注意,我們需要顯式調用OpenThemeData(),而為什么在前面的框架窗口例子中不需要調用呢,因為CThemeImpl在它的WM_CREATE處理程序中已調用了。反觀對話框取而代之接收WM_INITDIALOG,而CThemeImpl未處理WM_INITDIALOG,所以就需要我們自己調用OpenThemeData()了。另外,在代碼中也把字體設置得更大,只是為了演示更大字體的發(fā)光效果。