• <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)  編輯 收藏 引用

            導航

            <2012年6月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            1234567

            統計

            常用鏈接

            留言簿(19)

            隨筆檔案

            文章檔案

            收藏夾

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            婷婷久久综合九色综合98| 久久久久亚洲爆乳少妇无| 久久99热这里只有精品国产| 久久国产亚洲精品| 99精品国产在热久久| 欧美精品丝袜久久久中文字幕 | 国产精品99久久久久久猫咪| 久久国产乱子伦精品免费午夜| 久久久久久免费视频| 91视频国产91久久久| 一本久久a久久精品综合香蕉| 久久香蕉国产线看观看精品yw| 国产精品日韩深夜福利久久 | 国产免费久久精品99re丫y| 99re这里只有精品热久久 | 久久不见久久见免费视频7| 欧美日韩精品久久久久| 久久精品aⅴ无码中文字字幕重口 久久精品a亚洲国产v高清不卡 | 国产成人无码精品久久久久免费| 综合久久精品色| 精品久久久久久久久久久久久久久 | 欧美黑人激情性久久| 亚洲一区精品伊人久久伊人 | 亚洲综合伊人久久大杳蕉| 亚洲国产日韩欧美久久| 亚洲午夜精品久久久久久人妖| 色婷婷综合久久久久中文 | 亚洲精品国精品久久99热一| 欧美精品福利视频一区二区三区久久久精品 | 综合久久给合久久狠狠狠97色| 久久久久亚洲AV成人网| 国产精品成人久久久久三级午夜电影| 久久人爽人人爽人人片AV| 18岁日韩内射颜射午夜久久成人 | 久久综合久久综合九色| 69久久夜色精品国产69| 2020久久精品国产免费| 免费国产99久久久香蕉| 一级做a爰片久久毛片人呢| 99久久伊人精品综合观看| 国产精品日韩深夜福利久久|