• <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 閱讀(2716) 評論(0)  編輯 收藏 引用

            導航

            <2010年4月>
            28293031123
            45678910
            11121314151617
            18192021222324
            2526272829301
            2345678

            統計

            常用鏈接

            留言簿(19)

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            无码任你躁久久久久久老妇App| 国产精品美女久久久久AV福利| 久久只这里是精品66| 久久综合狠狠综合久久综合88| 丰满少妇人妻久久久久久| 国产三级精品久久| 亚洲国产精品成人久久| 国产精品久久久福利| 大香伊人久久精品一区二区| 国产一久久香蕉国产线看观看 | 久久国内免费视频| 精品永久久福利一区二区| 久久伊人中文无码| 国产99久久精品一区二区| 亚洲伊人久久综合影院| 久久99精品国产麻豆宅宅| 久久精品国产2020| 三级韩国一区久久二区综合 | 无码精品久久久久久人妻中字| 日本久久久久久中文字幕| 久久久久亚洲AV无码麻豆| 久久国产精品无| 久久精品国产亚洲精品| 久久夜色精品国产网站| 久久久久亚洲AV综合波多野结衣 | 人妻中文久久久久| 久久99国产精品二区不卡| 久久丫精品国产亚洲av不卡 | 久久精品国产91久久综合麻豆自制 | 久久99国内精品自在现线| 狠狠精品久久久无码中文字幕| 亚洲精品国精品久久99热| 久久国产乱子伦精品免费午夜| 曰曰摸天天摸人人看久久久| 久久狠狠高潮亚洲精品| 国产成人久久精品一区二区三区| 免费精品久久天干天干| 香蕉久久av一区二区三区| 久久国产精品无码HDAV| 久久精品夜夜夜夜夜久久| 久久99免费视频|