<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    VC Office2007界面對話框實現

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    我們知道VS2008SP1之后,MFC就多了一個功能包,可以快速的建立一個ribbon的界面,視覺樣式可以在office 2007藍、黑等顏色之間切換,這對于單文檔/多文檔做界面非常方便,而且也蠻好看的。但是,引入的功能包不對對話框進行界面美化,除了多一些控件外,外觀沒變。于是就想能不能利用單文檔的CFormView來模擬對話框,進行自己來實現對話框的美化呢,下面以單文檔為例:
    1.單文檔 ,“項目類型”選擇Visual Studio  視覺樣式和顏色 選擇office2007 (藍色主題);
    2.用戶界面功能,選中“使用菜單欄和工具欄”;
    3.高級功能里面,所有的“高級框架窗格”都不要選擇;
    4.生成的類里面,選擇視圖基類為CFormView,運行程序就會出現如圖所示:

    RFID設備管理軟件

    是不是覺得很不和諧,外框那么好看,里面內置的Form體卻那樣子,但是我們可以對里面的Form進行換顏色的,具體參考:http://blog.csdn.net/akof1314/archive/2009/12/06/4952372.aspx ,而要讓單文檔模擬對話框,具體參考:http://blog.csdn.net/akof1314/archive/2010/05/14/5593802.aspx 這里有些不一樣的是,CMainFrame里面要改為如下:

    int  CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) 

        if  (CFrameWndEx::OnCreate(lpCreateStruct) == -1 
            return  -1 ;     
        // 基于持久值設置視覺管理器和樣式  
        OnApplicationLook(theApp.m_nAppLook); 
        return  0 
    } 

    另一個函數PreCreateWindow:

    BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) 

        if ( !CFrameWndEx::PreCreateWindow(cs) ) 
            return  FALSE; 
        // TODO: 在此處通過修改  
        //  CREATESTRUCT cs 來修改窗口類或樣式  
        m_strTitle= "這是用單文檔做出來的對話框" ;  
        cs.style&= ~FWS_ADDTOTITLE;   //去掉單文檔的“無標題”  
        cs.style&= ~WS_THICKFRAME;   //去掉可調大小      
        cs.style &=  ~WS_MAXIMIZEBOX;    //去掉最大化按鈕  
        cs.style &=  ~WS_MINIMIZEBOX;     //去掉最小化按鈕  
        cs.hMenu= NULL ;   //去掉菜單欄  
        return  TRUE; 
    } 

    對于按鈕的美化就要使用上一篇說到的CxSkinButton按鈕皮膚類(http://blog.csdn.net/akof1314/archive/2010/07/05/5713833.aspx ),按鈕的素材我已放入源代碼工程里面,CxSkinButton類自己加了SizeToContent功能,下面是Form的初始化函數:

    void  CShowForm2View::OnInitialUpdate() 

        ModifyStyleEx( WS_EX_CLIENTEDGE, WS_EX_STATICEDGE); //去掉Form體凹陷  
        ModifyStyle(- 1  ,WS_CHILD| WS_VISIBLE);       //做為子窗體,可見  
        CFormView::OnInitialUpdate(); 
        GetParentFrame()->RecalcLayout(); 
        ResizeParentToFit(); 
        m_brush.CreateSolidBrush(RGB(213 ,228 ,242 ));   //   生成office2007blue刷子,修改背景顏色所用  
        m_Btn1.SetToolTipText(_T("這是按鈕一"));  
        m_Btn1.SetSkin(IDB_BITMAP1,IDB_BITMAP2,IDB_BITMAP3,IDB_BITMAP4,IDB_BITMAP5,NULL,0 ,0 ,0 ); 
        m_Btn1.SizeToContent(); 
        m_Btn2.SetToolTipText(_T("這是按鈕二"));  
        m_Btn2.SetSkin(IDB_BITMAP1,IDB_BITMAP2,IDB_BITMAP3,IDB_BITMAP4,IDB_BITMAP5,NULL,0 ,0 ,0 ); 
        m_Btn2.SizeToContent(); 
    } 

    運行效果如下:

    RFID設備管理軟件

    修改背景顏色和設置文本之類的透明等,這里不再介紹,完整代碼和例子:http://download.csdn.net/source/2517994

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全