• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-145  評論-173  文章-70  trackbacks-0
            不知道為何,寫過的一個blog不見了,于是重新簡單的整理下。本來有篇blog需要互相輔正的,不過沒辦法了。

            創(chuàng)建時修改,即在CMainFrame的成員函數(shù)PreCreateWindow函數(shù)來實現(xiàn)。
            1.創(chuàng)建時修改程序的外觀:修改初始化的窗口大小等等屬性。
            在CMainFrame函數(shù)中,設(shè)置cs的各個屬性,cs是一個結(jié)構(gòu)體,設(shè)置cx,cy表示它的大小,設(shè)置其他的表示另外的大小。
            注:原書由一個錯誤,可是,可以通過配套的源代碼來看出。
            就是書上是:    cs.style 
            |= ~FWS_ADDTOTITLE;
            而代碼上是:    cs.style 
            = WS_OVERLAPPEDWINDOW;
            如果按照書上的代碼,就會假死,每次啟動都失去響應(yīng),而且標(biāo)題沒有名稱。
            如果是代碼上的    cs.style 
            = WS_OVERLAPPEDWINDOW;則不會出現(xiàn)這個結(jié)果。
            修改的源代碼如下:
            BOOL CMainFrame::PreCreateWindow(CREATESTRUCT
            & cs)
            {
                
            if!CFrameWnd::PreCreateWindow(cs) )
                    
            return FALSE;
                
            // TODO: Modify the Window class or styles here by modifying
                
            //  the CREATESTRUCT cs

                cs.cx 
            = 500;
                cs.cy 
            = 300;
            //    cs.style = WS_OVERLAPPEDWINDOW;
                cs.style |= ~FWS_ADDTOTITLE;
                cs.lpszName 
            = "Helloworld";

                
            return TRUE;
            }


            注:可以通過修改CMainFrame的成員函數(shù)PreCreateWindow函數(shù)的CREATESTRUCT結(jié)構(gòu)體來個性化窗口的外觀。在單文檔應(yīng)用程序中,默認的窗口類型是WS_OVERLAPPEDWINDOW和FWS_ADDTOTILE,其中,F(xiàn)WS_ADDTOTITLE是一個MFC類型,將文檔的標(biāo)題添加到窗口標(biāo)題。所以要設(shè)置窗口標(biāo)題的內(nèi)容,必須將FWS_ADDTOTITLE屬性去掉。
            但是,將屬性設(shè)置改為
            &之后,就不會出現(xiàn)那個問題了。怪了…………
            特別注意的是,如果不講屬性設(shè)置為
            ~FWS_ADDTOTITLE,就不會更改標(biāo)題的名稱,即使設(shè)置了lpszName也不行
            具體的屬性設(shè)置見:http://m.shnenglu.com/deercoder/archive/2010/02/17/107962.html


            2.創(chuàng)建后設(shè)置的話,需要在CMainFrame和View中的OnCreate函數(shù)中,實現(xiàn)SetClassLong函數(shù)的使用。
            int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
            {
                
            if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
                    
            return -1;
                
                
            if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
                    
            | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
                    
            !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
                
            {
                    TRACE0(
            "Failed to create toolbar\n");
                    
            return -1;      // fail to create
                }


                
            if (!m_wndStatusBar.Create(this||
                    
            !m_wndStatusBar.SetIndicators(indicators,
                      
            sizeof(indicators)/sizeof(UINT)))
                
            {
                    TRACE0(
            "Failed to create status bar\n");
                    
            return -1;      // fail to create
                }


                
            // TODO: Delete these three lines if you don't want the toolbar to
                
            //  be dockable
                m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
                EnableDocking(CBRS_ALIGN_ANY);
                DockControlBar(
            &m_wndToolBar);

                SetClassLong(m_hWnd,GCL_HICON,(LONG)LoadIcon(NULL,IDI_ERROR)); 
            //更改窗口圖標(biāo),同前面的AfxRegisterWndClass函數(shù)

                
            return 0;
            }


            int CTest14View::OnCreate(LPCREATESTRUCT lpCreateStruct) 
            {
                
            if (CView::OnCreate(lpCreateStruct) == -1)
                    
            return -1;
                
                
            // TODO: Add your specialized creation code here
                
                SetClassLong(m_hWnd,GCL_HBRBACKGROUND,(LONG)GetStockObject(GRAY_BRUSH));
                SetClassLong(m_hWnd,GCL_HCURSOR,(LONG)LoadCursor(NULL,IDC_HELP));

                
            return 0;
            }




            詳見《Visual C++編程范例開發(fā)金典》 P96--99
            posted on 2010-02-17 21:46 deercoder 閱讀(460) 評論(0)  編輯 收藏 引用 所屬分類: MFC程序設(shè)計入門
            99久久国产亚洲高清观看2024 | 囯产精品久久久久久久久蜜桃| 国产综合精品久久亚洲| 亚洲国产成人久久精品99 | 久久亚洲精品中文字幕三区| 性高朝久久久久久久久久| 久久精品国产亚洲av麻豆小说| 精品久久久久久久中文字幕| 欧洲精品久久久av无码电影| 欧美午夜A∨大片久久 | 日韩久久久久久中文人妻 | 99久久国产综合精品女同图片| 狠狠狠色丁香婷婷综合久久五月| 久久久久久久久66精品片| 99热热久久这里只有精品68| 久久精品午夜一区二区福利| 久久久久免费精品国产| 精品久久久无码中文字幕天天| 久久婷婷五月综合国产尤物app| 国产99久久久国产精品小说| 久久久精品视频免费观看| 99久久精品国产免看国产一区| 亚洲精品久久久www| 久久久国产精品| 国产福利电影一区二区三区,免费久久久久久久精 | 亚洲综合久久夜AV | 国产亚洲美女精品久久久| 国产日产久久高清欧美一区| 久久久老熟女一区二区三区| 午夜不卡久久精品无码免费| 久久久国产亚洲精品| 久久这里有精品视频| 久久久久这里只有精品| 久久精品一区二区影院 | 久久综合综合久久综合| 一本一本久久aa综合精品| 18岁日韩内射颜射午夜久久成人| 久久99这里只有精品国产| 亚洲乱码中文字幕久久孕妇黑人 | 88久久精品无码一区二区毛片 | 人妻无码αv中文字幕久久琪琪布|