editbox文字上下居中(垂直居中)的有效方法

2021-04-30 07:15:41 字數 1937 閱讀 7792

在多行模式下的cedit類提供void cedit::setrectnp( lpcrect lprect)函式,此函式用來調整文字編輯的區域,用這個函式可以設定上下左右margins,而void setmargins( uint nleft, uint nright)函式只能設定左右margins。

crect rc = crect(0,0,0,0);

edit.getclientrect(&rc);

rc.deflaterect(10,10,10,10);

edit.setrectnp(&rc);

這段**設定上下左右margin都是10。

水平有限,到目前還沒找到單行模式下讓文字框的文字垂直居中的辦法,因此想到了利用多行文字框來模擬單行然後設定垂直居中的辦法。

crect rc = crect(0,0,0,0);

edit.getclientrect(&rc);

cdc* pdc = edit1.getdc();

textmetric tm;

pdc->gettextmetrics(&tm);

int nfontheight = tm.tmheight + tm.tmexternalleading;

int nmargin = (rc.height() - nfontheight) / 2;

rc.deflaterect(0,nmargin);

edit.setrectnp(&rc);

將文字框的屬性設定為es_multiline | es_autohscroll且不能es_autovscroll | es_wantreturn。

使用vc如何按一定斜角輸出字串

使用vc開發時,常常需要在視窗上畫一些圖表。有時要把一些文字豎著寫,有時需要傾斜一定的角度。對於老手們,這當然算不上什麼問

題,而新手卻常常找不到方法。

新手們往往會在cdc的成員函式裡四處尋覓,企圖找到乙個帶斜角引數的textout之類的函式,當然是找不到的。輸出角度雖然看起來應該

是個「輸出」行為,事實上卻不在畫圖時決定,而是由字型決定的。

vc的字型由乙個結構體定義:

typedef struct taglogfont logfont, *plogfont;

其中lfescapement就是輸出方向和x軸的夾角,以0.1度為單位。例如:如果我們斜向上45度輸出文字,那麼字型的lfescapement應為450。

知道這一點後,就很容易了。先取出當前dc的字型,沒置字型的輸出角度後,再生成一種新的字型讓dc選用,然後輸出的文字就有一定的

角度了。

獲取dc的字型用getcurrentfont函式,獲取字型的logfont結構體用cfont的getlogfont函式。

我們現在做乙個函式,來設定dc字型的輸出角度,並作為示例:

/** *//**

輸入: pdc 當前的輸出dc

angle 輸出角度,一周360度,可以用小數

*/void settextoutputangle(cdc * pdc, float angle)

...使用這個函式:

正常輸出:settextoutputangle(pdc, 0);

斜向上45度:settextoutputangle(pdc, 45);

從上往下:settextoutputangle(pdc, -90);

呼叫了函式之後,所有呼叫這個dc輸出的文字都會按相應的角度輸出,但重新設定了字型後,設定將失效。

事實上,通過對logfont結構體內變數的控制,我們可以實現很多有趣的功能,如讓字型變胖、變瘦、變歪、變成粗體字、細體字等,有

興趣的朋友可以自己研究。

div CSS 文字垂直居中

說到這個問題的時候,也許有人會問css中不是有vertical align屬性來設定垂直居中的嗎?即使是某些瀏覽器不支援我只需做少許的css hack技術就可以啊!所以在這裡我還要囉嗦兩句,css中的確是有vertical align屬性,但是它只對 x html元素中擁有valign特性的元素才生...

div css文字垂直居中

在說到這個問題的時候,也許有人會問css中不是有vertical align屬性來設定垂直居中的嗎?即使是某些瀏覽器不支援我只需做少許的css hack技術就可以啊!所以在這裡我還要囉嗦兩句,css中的確是有vertical align屬性,但是它只對 x html元素中擁有valign特性的元素才...

CSS div文字垂直居中

問題 vertical align,在div中設定文字垂直居中,是不起作用的。那怎麼樣設定div的文字垂直居中哦!關於 css文字垂直居中 的文章在網上可以找到很多,它們主要涉及3種方法 1 單行文字垂直居中 方法 把文字段落高度 line height 和所在區域高度 height 設為一致即可。...