• <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需要互相輔正的,不過沒辦法了。

            創建時修改,即在CMainFrame的成員函數PreCreateWindow函數來實現。
            1.創建時修改程序的外觀:修改初始化的窗口大小等等屬性。
            在CMainFrame函數中,設置cs的各個屬性,cs是一個結構體,設置cx,cy表示它的大小,設置其他的表示另外的大小。
            注:原書由一個錯誤,可是,可以通過配套的源代碼來看出。
            就是書上是:    cs.style 
            |= ~FWS_ADDTOTITLE;
            而代碼上是:    cs.style 
            = WS_OVERLAPPEDWINDOW;
            如果按照書上的代碼,就會假死,每次啟動都失去響應,而且標題沒有名稱。
            如果是代碼上的    cs.style 
            = WS_OVERLAPPEDWINDOW;則不會出現這個結果。
            修改的源代碼如下:
            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的成員函數PreCreateWindow函數的CREATESTRUCT結構體來個性化窗口的外觀。在單文檔應用程序中,默認的窗口類型是WS_OVERLAPPEDWINDOW和FWS_ADDTOTILE,其中,FWS_ADDTOTITLE是一個MFC類型,將文檔的標題添加到窗口標題。所以要設置窗口標題的內容,必須將FWS_ADDTOTITLE屬性去掉。
            但是,將屬性設置改為
            &之后,就不會出現那個問題了。怪了…………
            特別注意的是,如果不講屬性設置為
            ~FWS_ADDTOTITLE,就不會更改標題的名稱,即使設置了lpszName也不行
            具體的屬性設置見:http://m.shnenglu.com/deercoder/archive/2010/02/17/107962.html


            2.創建后設置的話,需要在CMainFrame和View中的OnCreate函數中,實現SetClassLong函數的使用。
            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)); 
            //更改窗口圖標,同前面的AfxRegisterWndClass函數

                
            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++編程范例開發金典》 P96--99
            posted on 2010-02-17 21:46 deercoder 閱讀(466) 評論(0)  編輯 收藏 引用 所屬分類: MFC程序設計入門
            久久久人妻精品无码一区| 欧美日韩精品久久久久| 大香网伊人久久综合网2020| 久久99精品久久久久久噜噜| 性做久久久久久免费观看| 久久亚洲欧美国产精品| 久久久久国产精品三级网| 久久亚洲国产精品成人AV秋霞| 国产精品九九九久久九九| 一级做a爰片久久毛片免费陪 | 嫩草影院久久国产精品| 久久久久久久久久久精品尤物| 久久久久亚洲AV无码专区体验| 国产福利电影一区二区三区久久久久成人精品综合 | 久久国产精品成人片免费| 久久影院久久香蕉国产线看观看| 免费精品久久久久久中文字幕| 国内精品伊人久久久久AV影院| 无码人妻久久一区二区三区蜜桃 | 日韩一区二区久久久久久| 人妻无码中文久久久久专区| 亚洲国产精品狼友中文久久久| 老司机国内精品久久久久| 青青草原精品99久久精品66| 久久久久亚洲国产| 亚洲国产香蕉人人爽成AV片久久 | 国产成人精品白浆久久69| 亚洲人成精品久久久久| 国产成人综合久久精品红| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 99久久免费只有精品国产| 久久av无码专区亚洲av桃花岛| 久久久久久精品免费免费自慰| 久久综合色之久久综合| 超级碰久久免费公开视频| 99久久精品久久久久久清纯| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久久青草久久久青草| 老司机国内精品久久久久| 精品久久久久久无码人妻热| 国产福利电影一区二区三区,免费久久久久久久精 |