<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>
  • 網站首頁 > 物聯資訊 > 技術分享

    1.1.7-學習Opencv與MFC混合編程之---為畫圖工具添加工具欄

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

    源代碼:http://download.csdn.net/detail/nuptboyzhb/3961701

    哎,其實里面有很多圖片的,本來看起開很明了的,資源連接里有詳細的文檔,比下面的看的舒服的多....

    為畫圖工具添加工具欄

    Ø  首先認識一下工具欄的操作。

    1.    打開資源->Toolbar

    2.    如何查看每個圖標的屬性?

    查看每個圖標屬性,不是按右鍵,而是左鍵雙擊圖片,即可看到,如:

    我們雙擊打開圖標,得到如下屬性框:

    從上圖我們可以知道‘打開’圖標的資源ID是:ID_FILE_NEW;這個ID號恰好和菜單項中的‘文件’->‘打開’菜單項具有相同的資源ID。

    因此,當我們按工具欄的‘打開’圖標時,能夠執行和按菜單項相同的功能。

    3.    如何為工具欄上的圖標之間添加一個分隔符?

    只需要用鼠標拖動即可。將一個圖標拖到遠一點的地方即可。

    4.    如何刪去一個圖標?

    用鼠標拖動,拖到離開工具欄即可

    Ø  為項目的畫圖工具添加工具欄。

    1.    編輯工具欄資源,分別為每一個工具畫一個圖標,雙擊圖標,設置圖標的屬性,使其資源ID號,與菜單項中各個工具菜單的資源ID相對應。編輯運行即可。

    2.    結束啦!

    Ø  新建自己的工具欄

    1.    插入,資源,選擇Toolbar,點擊新建按鈕。將資源按鈕設置為:IDR_MY_TOOLBAR

    2.    編輯幾個圖標資源,如下圖:

    并設置相應的屬性。將其與畫圖工具的菜單項的資源ID設為對應一致。

    3.    在CMainFrame類增加成員變量:CToolBar m_myToolBar;并在CMainFrame類的OnCreate(LPCREATESTRUCT lpCreateStruct)函數里添加如下代碼:

    if(!m_myToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_LEFT

               |CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||

               !m_myToolBar.LoadToolBar(IDR_MY_TOOLBAR))

    {

               TRACE0("Failedto create toolbar\n");

               return-1;      // fail to create

    }

    m_myToolBar.EnableDocking(CBRS_ALIGN_ANY);

    EnableDocking(CBRS_ALIGN_ANY);

    DockControlBar(&m_myToolBar);

    4.    編輯運行即可。

    在增加成員變量CToolBar  m_myToolBar;后出現運行錯誤,錯誤提示是一些內存不可讀錯誤。此時,將Release文件下的所有文件刪除即可。

    Ø  完善功能:為工具欄的顯示與否,添加查看菜單項;

    1.    添加‘查看’菜單項,設置為彈出類型。

    2.    在‘查看’菜單項下添加‘系統工具欄’和‘畫圖工具欄’菜單項。分別設置相應的屬性,并建立類向導;(注意):建立類向導的時候,選擇添加到CMainFrame類。在分別在其消息相應函數中加入如下命令:

    void CMainFrame::OnViewSystemBar()

    {

    //TODO: Add your command handler code here

    ShowControlBar(&m_wndToolBar,!m_wndToolBar.IsWindowVisible(),FALSE);

    }

     

    void CMainFrame::OnViewDrawBar()

    {

    //TODO: Add your command handler code here

    ShowControlBar(&m_myToolBar,!m_myToolBar.IsWindowVisible(),FALSE);

    }

    3.    以上基本完成了菜單項的功能,一下我們為菜單項的選擇添加‘對號’標記。

    為‘系統工具欄’和‘畫圖工具欄’菜單項添加UPDATA_COMMAND_UI消息處理函數。點擊右鍵,建立類向導,

    選擇UPDATA_COMMAND_UI.類名選擇CMainFrame.增加函數,編輯代碼:

    voidCMainFrame::OnUpdateViewSystemBar(CCmdUI* pCmdUI)

    {

    // TODO:Add your command update UI handler code here

    pCmdUI->SetCheck(m_wndToolBar.IsWindowVisible());

    }

     

    void CMainFrame::OnUpdateViewDrawBar(CCmdUI*pCmdUI)

    {

    //TODO: Add your command update UI handler code here

    pCmdUI->SetCheck(m_myToolBar.IsWindowVisible());

    }

    Ø  為畫圖工具的各個菜單項添加復選提示;

    分別點擊右鍵,建立類向導,選擇UPDATA_COMMAND_UI.類名選擇CXXXXView.增加函數,編輯代碼:

    void CCVMFCView::OnUpdateMyDrawLine(CCmdUI*pCmdUI)

    {

    //TODO: Add your command update UI handler code here

    pCmdUI->SetCheck(my_draw_flag==1);

    }

     

    voidCCVMFCView::OnUpdateMyDrawRectangle(CCmdUI* pCmdUI)

    {

    //TODO: Add your command update UI handler code here

    pCmdUI->SetCheck(my_draw_flag==2);

    }

     

    void CCVMFCView::OnUpdateMyDrawCircle(CCmdUI*pCmdUI)

    {

    //TODO: Add your command update UI handler code here

    pCmdUI->SetCheck(my_draw_flag==3);

    }

     

    voidCCVMFCView::OnUpdateMyDrawConceal(CCmdUI* pCmdUI)

    {

    //TODO: Add your command update UI handler code here

    pCmdUI->SetCheck(my_draw_flag==0);

    }

     

    void CCVMFCView::OnUpdateMyDrawCurve(CCmdUI*pCmdUI)

    {

    //TODO: Add your command update UI handler code here

    pCmdUI->SetCheck(my_draw_flag==4);

    }

     

    voidCCVMFCView::OnUpdateMyDrawEllipse(CCmdUI* pCmdUI)

    {

    //TODO: Add your command update UI handler code here

    pCmdUI->SetCheck(my_draw_flag==5);

    }

     

    void CCVMFCView::OnUpdateMyDrawText(CCmdUI*pCmdUI)

    {

    //TODO: Add your command update UI handler code here

    pCmdUI->SetCheck(my_draw_flag==6);

    }

    Ø  為各個工具菜單添加{提示}功能。即:當鼠標移動到菜單項上的時候,程序左下角會提示該菜單項的功能。

    方法1:設置菜單項的屬性,在屬性中的最后一欄,提示欄中輸入相應的提示語即可。

    方法2:直接打開資源文件:XXXX.rc,用記事本打開;

       添加如下代碼:

    在BEGIN 和END之間添加菜單項的ID號和對應的字符串即可:

    如:

    STRINGTABLE DISCARDABLE

    BEGIN

       ID_MY_DRAW_LINE         "畫一條直線(拖動鼠標)"

       ID_MY_DRAW_CONCEAL      "取消工具"

       ID_MY_DRAW_RECTANGLE    "畫矩形(拖動鼠標)"

       ID_MY_DRAW_CIRCLE       "畫圓(拖動鼠標)"

       ID_MY_DRAW_ELLIPSE      "畫橢圓(拖動鼠標)"

       ID_MY_DRAW_TEXT         "寫文字(拖動鼠標)"

       ID_MY_DRAW_CURVE        "畫任意曲線(拖動鼠標)"

    END


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