• <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 閱讀(462) 評論(0)  編輯 收藏 引用 所屬分類: MFC程序設計入門
            色综合久久久久无码专区| 久久婷婷五月综合色高清| 久久se精品一区二区| 国产精品久久99| 久久国产影院| 国产亚洲精久久久久久无码77777| 97香蕉久久夜色精品国产| 久久影院综合精品| 久久99精品国产麻豆不卡| 亚洲AV无码久久精品成人| 99久久国产综合精品五月天喷水 | 大伊人青草狠狠久久| 久久精品国产亚洲7777| 欧美亚洲色综久久精品国产| 国产精品无码久久久久| 无码AV中文字幕久久专区| 久久影视综合亚洲| 国产69精品久久久久9999| 亚洲AV日韩AV永久无码久久| 久久伊人亚洲AV无码网站| 97r久久精品国产99国产精| 久久成人国产精品免费软件| 久久精品免费大片国产大片| 国产一区二区三区久久精品| 亚洲AV日韩精品久久久久| 开心久久婷婷综合中文字幕| 国产午夜精品理论片久久影视| 久久这里有精品| 久久频这里精品99香蕉久| 国产精品日韩深夜福利久久| 久久久久久综合一区中文字幕| 久久精品国产亚洲AV电影| 亚洲人成伊人成综合网久久久| 亚洲AV乱码久久精品蜜桃| 久久综合综合久久综合| 久久久久人妻一区精品色| 久久久久无码精品国产| 99久久精品国产高清一区二区| 国产精品一区二区久久不卡| 久久婷婷五月综合97色| 99久久免费国产特黄|