VC下製作乙個類似於BCB的GroupBox的控制項

2021-05-23 00:25:36 字數 1067 閱讀 8063

如果大家用過其它一些物件導向的高階語言(如:bcb 、 delphi 、 vb 等)可能會用到裡面的groupbox控制項或者panel控制項,只要將其它控制項拖入這兩個控制項裡面,可以控制項一起顯示、一起隱藏等功能。vc沒有提供panel控制項,但提供了乙個groupbox控制項,而且這個控制項只是乙個簡單的邊框而已,無法做到裡面的控制項同時顯示,同時隱藏的效果。

一次我在做乙個程式時要用到panel,vc中沒有,只好用groupbox代替,但我發現了上述問題。於是我想到了控制項的setparent()函式,使用這個函式確實可以達到其它控制項隨groupbox同時顯示或隱藏,但同時也出現了一系列新的問題,最顯著的問題就是使用了setparent()函式後,控制項無法執行原來的成員函式。後來我想到乙個新的辦法:寫乙個groupbox的擴充套件類,用cptrarray陣列管理所有所需的控制項。好,不多說,現在開始

新建乙個基於對話方塊的程式。新建乙個類,類名為 cgroupboxex ,基類為cbutton

過載 cgroupboxex 類的 create 函式,函式**如下:過載 create 函式只是為了以後方便建立控制項,可以改其中的引數

在 cgroupboxex 類中新增私有變數或者保護變數 m_childlist ,型別為 cptrarray ,用於管理子控制項

新增公有函式用於新增子控制項的指標到 m_childlist 中過載 cgroupboxex 類的 showwindow 函式到此已經完成了,當然還要在 cgroupboxex 類中的析構函式中釋放陣列

現在 cgroupboxex 已經完成了,在對話方塊中隨便新增幾個控制項,和兩個按鈕控制項,並在對話方塊類中新增變數 cgroupboxex *pgroup;

在對話方塊初始化函式中新增以下**

然後在其它兩個按鈕控制項中分別加上

1.pcroup->showwindow(sw_show);    // 顯示

2.pcroup->showwindow(sw_hide);    // 隱藏

執行看看,怎麼樣?

大家還可以再擴充套件一下類,新增自己所需要的**。

以上**在 windows xp professional sp3 + visual c++ 6.0 下編譯通過原始碼我就不打包上傳了

乙個類似於購物車的python程式

練習中遇到的乙個練習題,隨便寫了些,有點亂,類似於乙個購物車,具體題目的要求是這樣的 輸出商品列表,使用者輸入序號,顯示使用者選中的商品 商品列表 goods 要求 1 頁面顯示 序號 商品名稱 商品 如 1 電腦 1999 2 滑鼠 10 2 使用者輸入選擇的商品序號,然後列印商品名稱及商品 3 ...

乙個類似於postman的協議測試工具

協議測試工具使用postman相當便捷,不過有乙個問題,就是每個人都要裝乙個這個東西,並且測試檔案導來導去,還是覺得麻煩了點。最重要的是postman不能修改,有一些定製功能postman明顯力不從心,比如前乙個協議產生的結果提供給後乙個協議作為引數這樣的簡單需求。實現方式,採用python3 bo...

如何用C 做乙個類似於桌面外掛程式的程式

最近看到有人問如何做乙個 桌面天氣秀 類似的軟體,開始我以為做這個東西很複雜,因為覺得至少要傳遞 message 給desktop 但事實上,一試之後發現做這個程式竟然很簡單。首先,需要設定窗體樣式,這裡面要設定的有 l設定 formborderstyle 為none l 設定topmost 為fa...