zoukankan      html  css  js  c++  java
  • 《原創》實現禁止 WTL CTabView 中標籤的拖曳行為。 (Disable Dragging Operation of CTabView)

    1. Abstract

    如何禁止WTL CTabViewTabDragging行為?

     

    2. Introduction

    因在專案中使用Tab的功能去進行頁面的分類,但是卻又不希望使用者改變Tab的順序。經過對 CTabViewImpl 這個ClassTrace之後發現 CTabViewImplDragging行為的處理分配在 dwMsgMapId == 1的這個 Message Map分流中,所以只要Pending掉這個 MessageMap就可以達到我們要的功能了。


    相關做法如下:


    Step 1:

    先繼承 CTabViewImpl

    (class CCustomTabView : public CTabViewImpl<CCustomTabView> ….. )

     

    Step 2:

    依照WTL編寫慣例加上 BEGIN_MSG_MAP(CCustomTabView) END_MSG_MAP() Macros.

     

    Step 3:

    CCustomTabViewMessage Map Macros 中加入 CHAIN_MSG_MAP(CTabViewImpl<CCustomTabView>) ALT_MSG_MAP(1) 這樣就可以完成我們所需要的功能了。

     

    Sample

     1 class CCustomTabView : public CTabViewImpl<CCustomTabView>
     2 {
     3 public:
     4     DECLARE_WND_CLASS_EX(_T("CCustomTabView"), 0, COLOR_APPWORKSPACE)
     5 
     6     BEGIN_MSG_MAP(CCustomTabView)
     7         CHAIN_MSG_MAP(CTabViewImpl<CCustomTabView>//粉重要讓dwMsgMapID == 0的消息分流可以繼續處理
     8         ALT_MSG_MAP(1)                                                            //Disable Draging
     9     END_MSG_MAP()
    10 
    11 ---- 略 ----
    12 };
    13 


     

    3. Conclusion

    未來可以在 dwMsgMapID == 1這個分流上實作 Switch的方式來 Enable/Disable Dragging行為。

     

    4. Reference

    NULL

  • 相关阅读:
    题解 DTOJ #1438. 矮人排队(lineup)
    题解 DTOJ #4423. 「THUSC2019」塔
    题解 DTOJ #4123.「2019冬令营提高组」全连
    题解 DTOJ #4016.辉夜的夜空明珠(moon)
    题解 DTOJ #2498.大步小步(babystep)
    题解 DTOJ #3326.组队(group)
    题解 DTOJ #1515.三塔合一
    题解 DTOJ #2305.Bazarek
    【code】Splay 模板
    寻找乱序数组中第K大的数
  • 原文地址:https://www.cnblogs.com/awen/p/1295214.html
Copyright © 2011-2022 走看看