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

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久夜色精品国产噜噜麻豆| 亚洲欧美日韩久久精品第一区| 久久久久亚洲AV无码麻豆| 综合久久一区二区三区 | 国产激情久久久久影院老熟女| 国产成人综合久久综合| 88久久精品无码一区二区毛片 | 麻豆成人久久精品二区三区免费 | 99久久免费国产精品| 久久精品亚洲男人的天堂| 久久综合偷偷噜噜噜色| 中文精品久久久久人妻不卡| 精品午夜久久福利大片| 国产免费久久精品99久久| 久久精品一本到99热免费| 久久99国产综合精品女同| 久久免费香蕉视频| 精品久久无码中文字幕| 亚洲国产成人精品91久久久 | 久久久91人妻无码精品蜜桃HD| 欧美激情精品久久久久久| 69久久精品无码一区二区| 久久久久99精品成人片| 97久久天天综合色天天综合色hd| 久久久久一级精品亚洲国产成人综合AV区 | 久久笫一福利免费导航 | 国产精品久久久久久久久久免费| 亚洲午夜福利精品久久| 91亚洲国产成人久久精品网址| 久久国产香蕉一区精品| 国产∨亚洲V天堂无码久久久 | 国内精品久久久久久不卡影院| 久久人妻AV中文字幕| 久久激情亚洲精品无码?V| 久久精品国产免费| 久久婷婷激情综合色综合俺也去| 亚洲国产成人乱码精品女人久久久不卡 | 国产亚洲美女精品久久久2020| 国内精品久久久久久久影视麻豆| 亚洲日本va中文字幕久久| 中文精品99久久国产|