• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            2008年10月26日

            模態(tài)對(duì)話框如何返回值的問題

            當(dāng)對(duì)話框DoModal返回后,對(duì)話框句柄被銷毀,同時(shí),對(duì)話框中的所有控件的句柄都會(huì)被銷毀,所以所有的控件類型都不可用,但是普通的值類型對(duì)象的值還是存在的知道對(duì)話框?qū)ο笊芷诮Y(jié)束。

            posted @ 2008-10-26 19:15 wangwei 閱讀(1302) | 評(píng)論 (0)編輯 收藏

            2008年9月19日

            mfc中控件排列和對(duì)齊的小技巧

            在VC6.0中將很多控件調(diào)整為一樣大小的或者對(duì)齊排列時(shí)候開始總是不知以哪一個(gè)為標(biāo)準(zhǔn),試了幾次發(fā)現(xiàn):用CTRL和鼠標(biāo)左鍵選中的以最后一個(gè)為標(biāo)準(zhǔn),用鼠標(biāo)圈住時(shí)以第一個(gè)進(jìn)入的為標(biāo)準(zhǔn)。

            posted @ 2008-09-19 14:43 wangwei 閱讀(5580) | 評(píng)論 (1)編輯 收藏

            2008年9月17日

            CWnd指針和HWnd

            HWND是Windows系統(tǒng)中對(duì)所有窗口的一種標(biāo)識(shí),即窗口句柄。這是一個(gè)SDK概念。   
            CWnd是MFC類庫(kù)中所有窗口類的基類。微軟在MFC中將所有窗口的通用操作都封裝到了這個(gè)類中,如:ShowWindow等等,同時(shí)它也封裝了窗口句柄即m_hWnd成員。

            由HWnd得到CWnd*:
            CWnd wnd;
            HWnd hWnd;
            wnd.Attach(hWnd);
            通常一個(gè)窗口資源已經(jīng)和一個(gè)CWnd類的對(duì)象關(guān)聯(lián)起來的,由于一般來說這個(gè)類是自己創(chuàng)建的,所以自然知道怎么得到指向這個(gè)類的指針。如果沒有就創(chuàng)建一個(gè)CWnd對(duì)象,將這個(gè)對(duì)象與窗口資源的hWnd句柄關(guān)聯(lián)起來。(如上邊的語(yǔ)句)。如果用
            static CWnd*   CWnd::FromHandle(HWND   hWnd) ;
            則返回值是一個(gè)暫時(shí)的CWnd對(duì)象,并且我們確保返回值為非空,也就是hWnd是有效的。 
            static CWnd*   CWnd::FromHandlePermanent(HWND   hWnd)  ;
            返回的是一個(gè)永久的對(duì)象。只有在返回的CWnd在類表里已經(jīng)存在是返回值為非空。

            由CWnd獲取HWnd就容易多了,因?yàn)樗囊粋€(gè)成員m_hWnd就是所對(duì)應(yīng)窗口的句柄。
            wnd->m_hWnd。

            posted @ 2008-09-17 19:48 wangwei 閱讀(19098) | 評(píng)論 (2)編輯 收藏

            2008年9月9日

            改變對(duì)話框背景顏色的方法(CSDN摘抄)

            ----   方法一:調(diào)用CWinApp類的成員函數(shù)SetDialogBkColor來實(shí)現(xiàn)。    
               
              ----   其中函數(shù)的第一個(gè)參數(shù)指定了背景顏色,第二個(gè)參數(shù)指定了文本顏色。  
              下面的例子是將應(yīng)用程序?qū)υ捒蛟O(shè)置為藍(lán)色背景和紅色文本,步驟如下:    
               
              ----   ①   新建一個(gè)基于Dialog的MFC   AppWizard應(yīng)用程序ExampleDlg。    
               
              ----   ②   在CExampleDlgApp   ::InitInstance()中添加如下代碼:    
               
              BOOL   CExampleDlgApp:   :   InitInstance   (   )  
              {  
              …  
              CExampleDlgDlg   dlg;  
              m_pMainWnd   =   &dlg;  
               
              //先于DoModal()調(diào)用,將對(duì)話框設(shè)置為藍(lán)色背景、紅色文本  
              SetDialogBkColor(RGB(0,0,255),RGB(255,0,0));  
              int   nResponse   =   dlg.DoModal();  
              …  
              }  
               
              ----   編譯并運(yùn)行,此時(shí)對(duì)話框的背景色和文本色已發(fā)生了改變。值得注意的  
              是:在調(diào)用DoModal()之前必須先調(diào)用SetDialogBkColor,且此方法是將改變  
              應(yīng)用程序中所有的對(duì)話框顏色,并不能針對(duì)某一個(gè)指定的對(duì)話框。    
              ----   方法二:重載OnPaint(),即WM_PAINT消息。有關(guān)代碼如下(以上例工程為準(zhǔn)):    
               
              void   CExampleDlgDlg::OnPaint()    
              {  
              if   (IsIconic())  
              …  
              else  
              {  
              CRect   rect;  
              CPaintDC   dc(this);  
              GetClientRect(rect);  
              dc.FillSolidRect(rect,RGB(0,255,0));   //設(shè)置為綠色背景  
               
              CDialog::OnPaint();  
              }  
               
               
              ----   方法三:重載OnCtlColor   (CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor),  
              即WM_CTLCOLOR消息。具體步驟如下(以上例工程為準(zhǔn)):    
              ----   ①在CExampleDlgDlg的頭文件中,添加一CBrush的成員變量:    
               
              class   CExampleDlgDlg   :   public   CDialog  
              {  
              ...  
              protected:  
              CBrush   m_brush;    
              ...  
              };  
               
               
              ----   ②在OnInitDialog()函數(shù)中添加如下代碼:    
              BOOL   CExampleDlgDlg::OnInitDialog()    
              {  
              ...  
              //   TODO:   Add   extra   initialization   here  
              m_brush.CreateSolidBrush(RGB(0,   255,   0));   //   生成一綠色刷子    
              ...  
              }    
               
              ----   ③利用ClassWizard重載OnCtlColor(…),即WM_CTLCOLOR消息:    
              HBRUSH   CExampleDlgDlg::OnCtlColor  
              (CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor)    
              {  
              /*  
              **   這里不必編寫任何代碼!  
              **下行代碼要注釋掉  
              **   HBRUSH   hbr   =   CDialog::OnCtlColor(pDC,   pWnd,   nCtlColor);  
              */  
               
              return   m_brush;   //返加綠色刷子  
              }  
               
               
              ----   方法四:還是重載OnCtlColor   (CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor),  
              即WM_CTLCOLOR消息。具體步驟如下(以上例工程為準(zhǔn)):    
              ----   步驟①、②同上方法三中的步驟①、②。    
               
              ----   步驟③利用ClassWizard重載OnCtlColor(…)(即WM_CTLCOLOR消息)時(shí)則有  
              些不同:    
               
              HBRUSH   CExampleDlgDlg::OnCtlColor  
              (CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor)    
              {  
              HBRUSH   hbr   =   CDialog::OnCtlColor(pDC,   pWnd,   nCtlColor);  
               
              //在這加一條是否為對(duì)話框的判斷語(yǔ)句  
              if(nCtlColor   ==CTLCOLOR_DLG)  
              return   m_brush;   //返加綠色刷子  
              return   hbr;  
              }

            原帖見:
            http://topic.csdn.net/t/20020821/08/957154.html

            posted @ 2008-09-09 15:26 wangwei 閱讀(2641) | 評(píng)論 (0)編輯 收藏

            2008年9月6日

            MFC 隨手抄

            在棧上創(chuàng)建CPaintDC對(duì)象是良好的編程習(xí)慣,這樣當(dāng)OnPaint結(jié)束時(shí)將自動(dòng)調(diào)用他們的析構(gòu)函數(shù)。如果用new操作符來實(shí)例化一個(gè)CPaintDC對(duì)象,在OnPaint結(jié)束之前刪除那個(gè)對(duì)象很重要。否則::EndPaint將不會(huì)被調(diào)用。

            Visual C++有一種簡(jiǎn)單的方法用來確定是否成功刪除了畫筆,畫刷和其他資源:只要在調(diào)試狀態(tài)下運(yùn)行程序。在應(yīng)用程序終止時(shí),沒有釋放的資源會(huì)顯示在調(diào)試窗口中。
            在最新版本的Windows中,允許GDI對(duì)象在設(shè)備描述表釋放的前一刻被刪除并沒有什么不好的影響,尤其是當(dāng)你能確保在此期間沒有畫圖程序執(zhí)行時(shí)更是如此。但是通過取消選定選入的對(duì)象而實(shí)現(xiàn)清除設(shè)備描述表仍然是Windows編程中的慣例。同時(shí)也是一種好習(xí)慣。

            posted @ 2008-09-06 08:50 wangwei 閱讀(421) | 評(píng)論 (0)編輯 收藏

            2008年8月16日

            數(shù)組名是一個(gè)常指針

            當(dāng)寫下:
            char ch[5];
            ch = "last";
            編譯提示:error C2106: '=' : left operand must be l-value。所以只能在數(shù)組定義的同時(shí)用字符串常量來給它賦值。
            但是寫下:
            char *pa;
            pa = "last";
            就不會(huì)有錯(cuò)誤。說明數(shù)組名字是一個(gè)常指針,不能被重新賦值。

            posted @ 2008-08-16 11:55 wangwei 閱讀(387) | 評(píng)論 (0)編輯 收藏

            2008年8月10日

            C++ 隨手抄

               引用和指針的的靜態(tài)類型和動(dòng)態(tài)類型可以不同,這是C++用以支持多態(tài)的基石。


               在同一虛函數(shù)的基類版本和派生類版本使用不同的默認(rèn)實(shí)參幾乎一定會(huì)引起麻煩!


               設(shè)計(jì)良好的類的層次中,public派生類對(duì)象可以用在任何需基類對(duì)象的地方。


            posted @ 2008-08-10 20:09 wangwei 閱讀(324) | 評(píng)論 (0)編輯 收藏

            僅列出標(biāo)題  
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            導(dǎo)航

            統(tǒng)計(jì)

            常用鏈接

            留言簿(2)

            隨筆分類

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            99久久做夜夜爱天天做精品| 国产精品久久午夜夜伦鲁鲁| 国产三级久久久精品麻豆三级| 色天使久久综合网天天| 久久精品嫩草影院| 99久久这里只有精品| 国内精品久久人妻互换| 国产精品女同久久久久电影院| 久久亚洲精品成人av无码网站| 色欲综合久久躁天天躁蜜桃| 久久综合88熟人妻| 日本三级久久网| 欧美一级久久久久久久大| 亚洲欧美久久久久9999| 97精品伊人久久久大香线蕉| 久久妇女高潮几次MBA| 国产亚洲综合久久系列| 久久精品国产免费一区| 久久国产成人精品国产成人亚洲| 日本久久久久久久久久| 久久无码中文字幕东京热| 久久久无码人妻精品无码| 51久久夜色精品国产| 久久久久久亚洲精品无码| 欧美国产成人久久精品| 国产亚洲欧美精品久久久| 精品无码久久久久久久动漫| 狠狠色丁香婷婷久久综合| 久久国产精品一国产精品金尊| 久久99久久99小草精品免视看| 久久久91人妻无码精品蜜桃HD| 久久人妻少妇嫩草AV蜜桃| 久久国产欧美日韩精品| 欧美一级久久久久久久大片| 久久国产亚洲精品无码| 亚洲国产成人精品久久久国产成人一区二区三区综 | 亚洲精品无码久久久久AV麻豆| 久久精品国产男包| 国产精品久久久久久久久久影院| 欧美久久综合九色综合| 精品久久久久久久国产潘金莲|