jasmine214--love

          只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
          posts - 731, comments - 60, trackbacks - 0, articles - 0

          GetClientRect(rect)與 GetClientRect(&rect); 參數的理解

          Posted on 2010-08-28 18:39 幻海藍夢 閱讀(2880) 評論(0)  編輯  收藏 所屬分類: C++

          1)CRect   rect;  

           GetClientRect(rect);  

           

           
          2)CRect   rect;  

            GetClientRect(&rect);  

            ....  

            為什么這兩段代碼的效果一樣??

           

          1.因為 CRect 重載了到 LPRECT 的操作:   

          CRect::operator   LPRECT(   ); GetClientRect(rect); 隱含的調用了該操作。

          摘自 : http://topic.csdn.net/t/20020816/13/946020.html

           

          2.首先要知道 GetClientRect 函數的原型,如下:   

            void   GetClientRect(   LPRECT   lpRect   )   const;  

            說明這個函數的參數是 LPRECT, 而并非 CRect 或是 CRect* ,那為什么你所說的兩種情況都正確呢!   

          http://msnpiki.msnfanatic.com/index.php/Main_Page-->

          s New Roman;">  1 )、對于 GetClientRect(rc) ,這里的參數是 CRect ,因為 CRect 類里有個 LPRECT 運算符重載( operator   LPRECT() ),所以當傳一個 CRect 變量給這個函數的時候,這個變量會自動轉換成 LPRECT.  

            2) 、對于 GetClientRect(&rc) 那就更好理解了,因為還有一點, CRect 是從 RECT 繼承的,所以你傳一個 CRect* 給這個函數的時候,它會自動轉換成其基類形式( RECT )的地址 , 所以也是對的!

          文章出處:飛諾網(www.firnow.com):http://dev.firnow.com/course/3_program/c++/cppjs/20100630/288201.html

          主站蜘蛛池模板: 宁德市| 北票市| 山东| 兰西县| 厦门市| 洛川县| 深水埗区| 阿荣旗| 顺平县| 泾阳县| 尉犁县| 金山区| 靖西县| 甘德县| 黄骅市| 松原市| 花垣县| 合川市| 津南区| 曲麻莱县| 龙陵县| 清水县| 钦州市| 安达市| 屏东县| 玉林市| 海林市| 岳普湖县| 重庆市| 广水市| 阳城县| 康乐县| 平定县| 金阳县| 成安县| 中方县| 博白县| 南充市| 山阳县| 阿拉善右旗| 义马市|