在多行模式下的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 設為一致即可。...