對話方塊中對成批控制元件的操作 (轉)
在使用VC/MFC時常碰到要對多個同時做同樣的操作的情況,特別是你想使某些控制元件同時禁用或同時隱藏某些控制元件等。這時你一般可以有如下選擇:
1. 你可以給每個控制元件對映控制型別的變數,然後逐個對它們進行操作,這顯然會在對話方塊類例項化時多佔用用來存放成員變數的;
2. 你也可以透過GetDlgItem得到來得到控制元件的窗體指標來逐個操作,而這除了佔用指標記憶體外,遇到太多的控制元件時無疑會使程式碼量增加;
3. 你可採用指標陣列來記錄所有的控制元件,一般先要進行一個初始化動作在動話框開始顯示時記錄下要操作的控制元件,然後去對其操作。這種辦法除了指標空間外,遇到不同型別的要進行太多的型別轉化。
4. 當然,你要像VB那樣使用控制元件陣列的話在VC中也是可以透過對映控制元件的控制型別變數來實現的,但主要是它除了佔用空間外還不太適合於不同型別的控制元件。
這裡介紹的是如果使用對話方塊類自帶的兩個成員函式來實現這種操作,它們是:
l /editor/_mfc_cwnd.3a3a.getnextdlgtabitem.htm">CWnd::GetNextDlgTabItem得到“下一個”TAB項控制元件
l 得到一組控制元件中的“下一個”
注意::namespace prefix = o ns = "urn:schemas--com::office" />
1. 這裡的“下一個”都是相對的,你可以透過它們的引數讓它變成“上一個”;
2. 在使用前者是要注意要操作控制元件的“TabStop”屬性必須打上鉤或者它要有風格;
3. 使用後一個函式要使要操作的控制元件在一組,方法是在第一個控制元件的Group屬性上打鉤,後面的不打鉤;
4. 當一批控制元件被Enable(false)(即Disable禁用後)下次就使用上述兩個函式就不算在內了,所以要再次使用即恢復它們的話必須另外記下它們的指標;
5. 關於上面的兩個函式的詳細說明請參MSDN。
下面是一個應用它們的例子:
CWnd * pWndCtrl = GetDlgItem(IDC_STATIC1);
for(i=0;i < 11 && pWndCtrl != NULL;i++)
{
pWndCtrl->EnableWindow(FALSE);
pWndCtrl = GetNextDlgTabItem(pWndCtrl);
}
上面的程式碼將同時禁用11個控制元件,將GetNextDlgTabItem換成GetNextDlgGroupItem的話就是對一組控制元件進行操作啦。
當然,因為這兩個函式是CWnd類的成員,對於非對話方塊上的控制元件或者動態建立的控制元件同樣有效。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-962111/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- React中的模式對話方塊React模式
- c#中的模態對話方塊和非模態對話方塊C#
- javascript中的彈出對話方塊JavaScript
- 對話方塊的選單、控制元件使用COMMAND_UI (轉)控制元件UI
- 對話方塊函式函式
- 對話方塊背景色的設定 (轉)
- VC 對話方塊背景顏色、控制元件顏色控制元件
- Android UI控制元件系列:Dialog(對話方塊)AndroidUI控制元件
- [MFC]選擇目錄對話方塊和選擇檔案對話方塊
- flutter demo (四):對話方塊Flutter
- Javascript檔案對話方塊JavaScript
- 視窗和對話方塊居中對齊
- QT常用控制元件(一)——選單欄和對話方塊QT控制元件
- Java 中彈出對話方塊的幾種方式Java
- 進一步學習對話方塊(轉)
- 一個Flex 對話方塊的坑Flex
- VC實現對話方塊上資訊的顯示 (轉)
- 在 Flutter 使用 GetX 對話方塊Flutter
- Qt 對話方塊新增工具欄QT
- 如何自學qt(4)——對話方塊QT
- QT 等待對話方塊/進度QT
- android 多項對話方塊Android
- Android Dialog對話方塊Android
- DialogPane對話方塊佈局
- InstallShield自定義對話方塊模板程式碼(轉)
- 重新顯示 Windows 98 歡迎對話方塊(轉)Windows
- InstallShield自定義對話方塊淺談(三) (轉)
- InstallShield自定義對話方塊淺談(四) (轉)
- InstallShield自定義對話方塊淺談(五) (轉)
- JavaFX 如何使用內建的對話方塊Java
- 16.讓對話方塊支援拖拽操作/目錄框開啟操作
- easysize_動態調整對話方塊控制元件位置和大小控制元件
- Flutter Widgets 對話方塊-DialogFlutter
- 常用元件 / 對話方塊及選單元件
- Qt標準對話方塊實現QT
- TWebBrowser禁止彈出Alert對話方塊Web
- android常用對話方塊封裝Android封裝
- JavaScript彈出儲存對話方塊JavaScript