• <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>

            vc中控件字體的設置(轉

            和所有初學者一樣,剛開始接觸新的東西,總想把畫面做的漂亮些,可是在vc中很難做到,比如對話框中按鈕等控件的字體設置,就頗費了我一番功夫。
                一。做成一個函數,改變字體大小,方法如下:
                  1。在最開頭聲明一個全局的字體指針 CFont *my_font=new CFont();//注意初始化,不能為空
                  2。在需要改變字體的地方調用函數:
                      set_font(60,my_font,"隸書"); //字體大小、指針、名稱
                      GetDlgItem(IDC_anniu)->SetFont(my_font);//改變字體
                  3。對與不同的字體,你需要設置不同的字體指針就可以了。
                  4。注意在退出時要刪除字體,否則多次調用出現問題
                   BOOL CMyDlg::DestroyWindow()
                  {
                   if (my_font)   my_font->DeleteObject();
                   return CDialog::DestroyWindow();
                  }
                  5。 以下是函設置字體函數的詳細內容:
            void set_font(int height,CFont *font,char *name)
            {
            // font=new CFont();//不在此,要在外部初始化,否則找不到指針
                 LOGFONT lf;
               lf.lfHeight=20;          lf.lfWidth= 0;
            lf.lfEscapement=0;    lf.lfOrientation= 0;
            lf.lfWeight= 760;      lf.lfItalic= 0;
            lf.lfUnderline =0;      lf.lfStrikeOut =0;
            lf.lfCharSet =134; lf.lfOutPrecision =3;
            lf.lfClipPrecision =2; lf.lfQuality= 1;
            lf.lfPitchAndFamily =2; lstrcpy(lf.lfFaceName, "宋體");
            lf.lfOutPrecision =OUT_TT_ONLY_PRECIS;//OUT_TT_PRECIS;
               
            lf.lfHeight= height;   //字體大小
                 lstrcpy(lf.lfFaceName, name);//名稱
                if (font!=NULL)
                {
            font->DeleteObject();
            font->CreateFontIndirect(&lf);
                }
            }
              
            #define say(ch) AfxMessageBox(ch)//自己使用的提示函數
            #define bt(ch)   SetWindowText(ch)//自己使用的提示函數
              
            二。改變字體顏色,要加入系統函數
            HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
            {
            HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
            //    return hbr;
                switch(nCtlColor)
            {
            case CTLCOLOR_STATIC://靜態文本
               TCHAR lpszClassName[255];
               GetClassName(pWnd->m_hWnd, lpszClassName, 255);
               if(_tcscmp(lpszClassName, TRACKBAR_CLASS) == 0)//類名是拉動條
                return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
               else if (IDC_tishi==pWnd->GetDlgCtrlID())//指定的控件ID提示
                {
                 pDC ->SetTextColor(RGB(255,100,100));//RGB(100,255,100)
                 return hbr;
                }
               else
                {
                 pWnd->GetWindowText(ch,40);
                 if (   strcmp(ch,"測試數據")==0 )//指定的標題
                 {
                  pDC ->SetTextColor(RGB(255,0,200));
                     return hbr;  
                 }
                 pDC->SetBkColor(RGB(255,255,255));
                 return hbr;//(HBRUSH) GetStockObject(HOLLOW_BRUSH);
                }
               }
               break;
                 case CTLCOLOR_BTN://按鈕,好象不行
               // pDC ->SetBkMode(OPAQUE);//背景不透明
                // pDC->SetBkMode(TRANSPARENT);//背景透明
            //   say("button");
                    CString str;
            //owen draw //注意,右擊按鈕屬性改為自繪式
                 pWnd->GetWindowText(str); //得到標題內容
                 RECT rect;
                  pWnd->GetClientRect(&rect);//得到矩形范圍大小
               pDC->SelectStockObject(BLACK_PEN);
               pDC->Rectangle(&rect);//黑筆畫外邊矩形
               rect.left+=2;rect.top+=2;
               rect.right-=2 ;rect.bottom-=2;
               pDC->SelectStockObject(WHITE_PEN);
               pDC->Rectangle(&rect);//白筆畫內矩形
               pDC->SelectObject(font);//選擇字體,大小
               pDC->SetTextColor(RGB(0,255,0)); //字體得前景顏色
               pDC->SetBkColor(RGB(255,0,255)); //字體的背景顏色
               pDC->DrawText(str, &rect, DT_CENTER|DT_VCENTER|DT_SINGLELINE);
               return (HBRUSH) GetStockObject(HOLLOW_BRUSH);
                    break;
                 case CTLCOLOR_EDIT://
            編輯框
                    pDC ->SetTextColor(RGB(255,0,0));//文本顏色
                    pDC ->SetBkColor(RGB(255,255,255));//文本背景
                    break;
                 case CTLCOLOR_LISTBOX://
            列表框
                // pDC ->SetTextColor(RGB(255,255,0));
                // pDC ->SetBkColor(RGB(160,60,0));
                    break;
                 }
            // TODO: Return a different brush if the default is not desired
            return hbr;
            }

            posted on 2010-12-02 08:54 wrh 閱讀(2730) 評論(0)  編輯 收藏 引用

            導航

            <2009年6月>
            31123456
            78910111213
            14151617181920
            21222324252627
            2829301234
            567891011

            統計

            常用鏈接

            留言簿(19)

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            免费精品国产日韩热久久| 色诱久久久久综合网ywww| 国内精品久久久久久久涩爱| 中文字幕精品久久久久人妻| 性色欲网站人妻丰满中文久久不卡| 99久久这里只有精品| 亚洲午夜精品久久久久久app| 久久精品欧美日韩精品| 无码精品久久一区二区三区| 国产午夜精品久久久久免费视| 99久久精品费精品国产一区二区| 久久免费视频6| 日韩亚洲欧美久久久www综合网| 国内精品伊人久久久久妇| 亚洲国产成人久久综合一 | 狠狠色丁香婷婷久久综合不卡| 久久精品国产亚洲5555| 国产精品久久国产精麻豆99网站| 久久这里的只有是精品23| 久久国产精品无码网站| 一本久久久久久久| 久久伊人精品青青草原高清| 久久久久亚洲AV无码麻豆| 97久久国产综合精品女不卡 | 久久性精品| 精品国产综合区久久久久久| 女人香蕉久久**毛片精品| 精品久久久久久综合日本| 国产69精品久久久久777| 精品无码久久久久久尤物| 亚洲∧v久久久无码精品| 亚洲va久久久噜噜噜久久狠狠| 99久久做夜夜爱天天做精品| 久久久久久久波多野结衣高潮| 一本色综合久久| 久久久久久久女国产乱让韩| 777午夜精品久久av蜜臀| 久久国产欧美日韩精品| 国产精品久久久久天天影视| 亚洲综合精品香蕉久久网97 | 色88久久久久高潮综合影院|