動態設定編輯框的大小 文字字型 顏色等

2021-06-05 18:40:05 字數 1184 閱讀 5382

1)獲得編輯框的大小

因為之前儲存了文字的字型樣式:logfont , 

cfont  *font = new cfont; 

font->createfontindirect(&(((ctext*)m_mapnodeselected[0])->m_fontstyle));

cfont *oldfont = ldc->selectobject(font);

//獲得某一種字型下字串的長和寬

csize m_size = ldc->gettextextent(cdataconvert::tchartostring(((ctext *)m_mapnodeselected[0])->textstr));   //textstr 只是儲存了當前的內容

rc.right = ((ctext*)m_mapnodeselected[0])->m_xstart +m_size.cx;

rc.bottom = ((ctext*)m_mapnodeselected[0])->m_ystart + m_size.cy;

pview->m_curpoint.x = ((ctext*)m_mapnodeselected[0])->m_xstart;

pview->m_curpoint.y = ((ctext*)m_mapnodeselected[0])->m_ystart;

pview->m_edit.movewindow(&rc);

按照網路上很多人說的 直接用:

cfont  font ;

font.createpointfont(300,_t("宋體"),0);

pview->m_edit.setfont(&font);

其實這麼簡單的說也是正確的,但是好像有使用範圍吧,因為我單獨建了專案還是不好使,然後就查啊查,看了有乙個朋友用指標來宣告的font,就可以完成。

後來知道了,宣告的這個font的生命週期要和m_edit的一致。

那麼在單獨程式中我可以不設定為指標,而用成員 變數 cfont font;

if(dlg.domodal() == idok)

這樣也是可以的。應該是只要生命週期一致就可以吧。

之所以要這麼想,是由於如果多次修改時,那麼會有很多的font指標,而且在我的程式中刪除起來麻煩,因此不如只建立乙個font 。

這樣cfont  當這個類銷毀的時候才銷毀。

這是對乙個應用程式返工後,又發現了這個。

MFC編輯框如何改變字型的大小

說明 其中m editplace為ceidt控制項型別的變數。方法一 步驟一 在dlg類中增加乙個類成員變數 cfont m editfont 注意 這裡 font 物件必須是類成員變數,不能是區域性變數,否則會出現只改變了游標的大小,而不能改變字型的大小。步驟二 在oninitdialog方法中增...

CEdit編輯框字型和背景設定

cedit編輯框字型和背景設定 注意事項 當cedit為 disable 時,設定編輯框的字型和背景會沒有效果。解決方案 將cedit的style設定為 readonly 這樣設定就能生效了,同時也能達到禁用編輯的功能。通過傳送 wm ctlcolor 訊息,呼叫hbrush onctlcolor ...

編輯框中字型修改和大小字型大小,顏色設定

首先要了解 cfont類,它 封裝了乙個 windows 圖形裝置介面 gdi 字型,並為操作字型提供了成員函式 使用creatfontw函式來建立字型。函式的原型如下 bool createfont int nheight,字型高度 0為預設高度,非0絕對值為字型高度 int nwidth,字型寬...