屬性頁中的ON_UPDATE_COMMAND_UI

我前面翻譯了一篇文章簡單的談了一下在對話框處理ON_UPDATE_COMMAND_UI 消息。又在www.codeguru.com上看到在屬性頁中處理ON_UPDATE_COMMAND_UI 消息的方法和在對話框中稍有不同。兩者的處理大體上一樣。只是在屬性頁中還需要一個步驟。
?????????需要從CPropertySheet派生類,并攔截消息WM_KICKIDLE。
1、利用Class Wizard常見一個新類CMyPropSheet,其基類為CPropertySheet。
2、在頭文件中添加消息函數:
?????afx_msg LRESULT OnKickIdle(WPARAM?wParam, LPARAM?lParam);
3、在源文件中包含afxpiv.h
4、添加消息映射 ON_MESSAGE(WM_KICKIDLE, OnKickIdle);
5、實現函數
?LRESULT CMyPropSheet::OnKickIdle(WPARAM, LPARAM)
{
????????SendMessgeToDescendants(WM_KICKIDLG, 0,?0,?FALSE, FALSE);
?????????return 0;
}
屬性表現在將所有的WM_KICKIDLE消息傳遞給屬性頁,在屬性頁類中,添加WM_KICKIDLE的消息映射,并調用UpdateDialogjControls
LRESULT?CMyPropPage::OnKickIdle(WPARAM, LPARAM)
{
????????UpdateDialogjControls(this,FALSE);
???????? return 0;
}
???????? 接下來就是和對話框類似的處理ON_UPDATE_COMMAND_UI?消息映射。
???????? 對無模式屬性表不起作用,需要在屬性表的所有窗口中處理WM_IDLEUPDATECMDUI消息,并發送WM_KICKIDLE消息給它。
??????????
附: 這里還討論幾個有關屬性頁的問題

1
???如何在屬性表的兩個頁之間傳遞數據?
?????? CPropertyPage有一個成員函數QuerySiblings(WPARAM, LPARAM)。應用程序可以使用這個函數。QuerySiblings生成一條PSM_QUERYSIBLINGS消息,它傳遞給所有的兄弟,也就是屬性表上的其他屬性頁。
????? 一般可創建一個所有頁可見的枚舉,如:
?enum{QUERY_MY_STRING,? QUERY_SOMETHING_ELSE,.......}
然后,在一個屬性頁需要其他屬性頁中的信息時,使用代碼:
CString myString;
if(lL == QuerySiblings(QUERY_MY_STRING,(LPARAM)&myString))
{
???????? ....//獲取字符串
}
提供字符串的頁處理PSM_QUERYSIBLINGS消息:
LRESULT CPageThatHasString::OnQuerySiblings(WPARAM wParam, LPARAM lParam)
{
??????? if(QUERY_MY_STRING == wParam)
?????? {
????????????? *((CString *)lParam) = _T(“Test String“);
???????????????return 1L;
???????}
?????? else
????????????? return 0L;
}

2??? 如何讓屬性頁具有兩行標簽?
?????? 從CPropertySheet派生一個自己的類,添加一個PreCreateWindow的處理,然后在調用基類的處理前加如下代碼:
????? cs.style |= TCS_MULTILINE;

3??? 如何隱藏屬性頁的標題欄?
?????? 從CPropertySheet派生一個自己的類,并覆蓋OnInitDialog,在轉到默認的情況以后,使用ModifyStyle來刪除標題欄標志WS_CAPTION。
?????? ModifyStyle(WS_CAPTION,0);

轉載于:https://www.cnblogs.com/hehe520/archive/2004/12/09/6330142.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/277353.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277353.shtml
英文地址,請注明出處:http://en.pswp.cn/news/277353.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux基礎命令rpm,rpm常用命令集合1

提要:RPM 是 Red Hat Package Manager 的縮寫,原意是Red Hat 軟件包管理;本文介紹RPM,并結合實例來解說RPM手工安裝、查詢等應用;正文:RPM包管理的用途;1、可以安裝、刪除、升級和管理軟件&…

hibernate詳解

Hibernate原理與應用 主要內容 1、引入 2、安裝配置 3、基本概念和CURD 4、HQL和Criteria 5、關聯映射 6、繼承映射 7、集合映射 8、懶加載 9、緩存 10、事務 11、其他 12、Hibernate不適合的場景 13、與JPA的集成(annotation方式) 14、最佳實踐 1、引入 模型不匹配(阻抗不匹配…

Csharp+Asp.net系列教程(四)

邁克老貓 來自:老貓的理想 本教程參考C#和ASP.NET程序設計教程撰寫,有什么不足之處請大家指出,或在老貓的理想BLOG留言。 這次簡述一下操作符 1.算術操作符 算術操作符包括加()、減(-)、乘(*)、除(/)和求余(%)。加減操作符…

linux 腳本 寫更新,用Shell寫的游戲客戶端更新腳本

#!/bin/sh########################################### 客戶端版本更新系統########################################### CLIENT_INIT_VERSION 客戶端新版本,默認是0# CLIENT_OLD_VERSION 客戶端舊版本(存放在VERSION_FILE指定的文件中),當沒有時取CL…

Android Studio 環境搭建參考,jdk10javac命令提示不是內部或外部命令

https://blog.csdn.net/qq_33658730/article/details/78547789 win10下Android Studio和SDK下載、安裝和環境變量配置 http://yanmin99.com/ android-0基礎從入門到精通 環境變量ANDROID_HOMEE:\Program Files (x86)\Android\SdkJAVA_HOMEE:\Program Files\Java\jdk1.8.0_161TO…

報表引擎 - 數據模型

介紹 本文檔是報表模型的數據模型部分,說明平臺報表中涉及的報表數據相關 術語 名稱 說明 數據源 數據源是與數據存儲的連接。支持數據源適配 數據集 定義報表數據來源的一個二維表 參數 報表往往有參數,例如,日報表,當…

linux 刪舊內核,Ubuntu 刪除舊內核的方法

使用Ubuntu時如果系統里安裝了很多內核,會造成多于的啟動列表。想刪掉一些不用的內核方法如下方法一:首先就是使用如下命令,列出所有安裝的內核,下表中,帶有p_w_picpath的就是內核文件。從中選擇要卸載的包&#xff0c…

L2-014 列車調度(隊列模擬:set)

題意: 兩端分別是一條入口(Entrance)軌道和一條出口(Exit)軌道,它們之間有N條平行的軌道。每趟列車從入口可以選擇任意一條軌道進入,最后從出口離開。在圖中有9趟列車,在入口處按照{…

新架設了一個CVS服務器 --by yp

cvs是個代碼管理的好東東,全稱并發版本控制。不知道的上網查一下資料。 我下載了相關的部分資料和軟件,包括架設服務器的軟件和使用服務的客戶端軟件,都是windows平臺下可用的, 其他平臺下的我都沒下載,因為不會用。在…

@hdu - 6372@ sacul

目錄 descriptionsolutionaccepted codedetailsdescription 定義矩陣 \(A_i\) 是一個大小為 \(p^i*p^i\) 的矩陣,其中 \(p\) 是第 \(c\) 個素數(c 給定),且 \(A_i[x][y] [C(x, y) \mod p > 0]\)(其中 C(x, y) 是組…

實驗室里人越來越少啊!

研二下半學期了。研三的師哥師姐們都忙著找工作,有的已經去工作了。只是偶而來實驗室轉轉。研一的師弟師妹,現在還都有課,實驗室也沒他們的機器,所以幾乎不來實驗室。我們研二的有四個人,兩個北京的。其中一個在外面打…

在一臺機器上搭建多個redis實例

默認Redis程序安裝在/usr/local/redis目錄下; 配置文件:/usr/local/redis/redis.conf,該配置文件中配置的端口為默認端口:6379; Redis的啟動命令路徑:/usr/local/bin/redis-server。 可以指定端口啟動多個R…

2年前 影子

1. 請問您知道 xxxx嗎 ? 麻煩了您? 2. 您在公司待了多長時間了? 3. 您覺得公司怎么樣? 。。。。。。 待續! 轉載于:https://www.cnblogs.com/nucdy/p/11151470.html

linux是只讀添加 來覆蓋,Linux之指令 重定向 文件覆蓋和文件追加

CXF支持 SOAP1.1 SOAP1.2協議SOAP協議分為兩個版本 1.1 1.2 默認支持1.1 實現方式: 1.編寫接口 import javax.jws.WebService; WebService public inte ...USACO Section 2.4: Bessie Come Home因為題目給了邊的信息,所以比較…

分層架構web容器的配置安全

轉自:http://hi.baidu.com/shineo__o/item/7520d54c24d234c71081da82 /ps:本以為這是一個偶然配置失誤造成的問題,但最近幾天無聊時測試發現,有此類似問題的站點就有上百個,所以在這里粗糙總結一下! 通常我們會碰到這樣…

Jenkins-Gitlab配置方法

1)本機首先安裝好git軟件2)然后安裝gitlab插件,在可選插件中查找gitlab,點擊直接安裝3)然后進入系統管理-系統設置 首先進入Gitlab中復制需要的 token 值在 Profile Settings - Account把復制的值,復制到新增頁面中轉載于:https:…

高速緩沖存儲器的功能、結構與工作原理

2.3 高速緩沖存儲器(Cache) 2.3.1 高速緩沖存儲器的功能、結構與工作原理   高速緩沖存儲器是存在于主存與CPU之間的一級存儲器, 由靜態存儲芯片(SRAM)組成,容量比較小但速度比主存高得多, 接近于CPU的速度。 Cache…

洛谷 P1417 烹調方案 (01背包拓展)

一看到這道題就是01背包 但是我注意到價值和當前的時間有關。 沒有想太多,直接寫,0分 然后發現輸入方式不對…… 改了之后只有25分 我知道wa是因為時間會影響價值,但不知道怎么做。 后來看了題解,發現我對01背包理解不夠透徹普通0…

LeetCode 77.組合求和

給定一個無重復元素的數組 candidates 和一個目標數 target ,找出 candidates 中所有可以使數字和為 target 的組合。 candidates 中的數字可以無限制重復被選取。 說明: 所有數字(包括 target)都是正整數。解集不能包含重復的組合…

18函數對象19command模式20函數對象在STL中的應用

Item 18. Function ObjectsItem 19. Commands and HollywoodItem 20. STL Function Objects1、unction Objects是什么函數對象聽起來挺嚇人,其實并不神秘,它也是一個類的對象,只不過該類重載了操作符(),使得對象使用以來跟函數一樣。class Fi…