C# 字串換行、字串畫素高度、寬度 的結構
//字串高度、寬,行數,及字串本身 public struct hhString { public string str; //處理後的字串 public int hSnumber; //共有幾行(插入多少個斷行符) public float width; //處理後的字串寬 public float height;//處理後的字串高 public hhString(string _str, float _width, float _height, Font font, Graphics g) { SizeF sf = g.MeasureString(_str, font); hSnumber = 0; //行數 width = sf.Width; height = sf.Height; float tempWidth = 0; //迴圈到字串中某個字元的寬度 string tempStr = _str; //插入用 int insertPoint = 0; //剛在迴圈中的插入點 gotoReFor: //上一個插入點以後重新從插入點開始迴圈 if (insertPoint != 0) { _str = tempStr; //替換為處理後的字串 sf = g.MeasureString(_str, font); //斷行後字串寬度發生變化,重新計算size tempWidth = 0; //清零,因為tempWidth為上一次計算的行文字的總寬度,這裡清零重新計算當前行 } if (sf.Width > _width) { //字串寬度大於單元格寬度 for (int i = insertPoint; i < _str.Length; i++) { if (tempWidth > _width) { tempStr = _str.Insert(i, "\n"); hSnumber++; //行數加一行 insertPoint = i; //插入點變成當前插入點,下次從這個點開始迴圈 goto gotoReFor; //斷行後,重新開始計算經過處理後的字串,用於文字多於兩行的多文字情況 } tempWidth += g.MeasureString(_str[i].ToString(), font).Width + 1; } } str = tempStr; sf = g.MeasureString(str, font); width = sf.Width; height = sf.Height; } }
相關推薦
C# 字串換行、字串畫素高度、寬度 的結構
//字串高度、寬,行數,及字串本身 public struct hhString { public string str; //處理後的字串 public int hSnumber; //共有幾行(插入多少個斷行符) public float wid
MFC 獲取字串畫素高度和寬度
方法一: // 取文字的尺寸 CRect rc; CFont *pOldfont=pdc->SelectObject(&fn); // 設定新字型 pDC-&g
Matlab中如何將長字串換行寫
太長不看版 舉例如下: % Port definition fprintf(fID,[... '\n'... 'input clk;' '\n'... 'input rst_n;'
VC中寬字串換行(WCHAR字串換行)
問題: VC6中使用\來連線較長的字串的時候就會在連線處出現一個亂碼,最終導致異常,例如: _stprintf(lpszBuffer, _T("select si_id, si_ip, si_port, si_name from serverinfo where si_
VS 中 長字串換行
在VS中寫程式碼 ,如果字串很長,我們希望他換行顯示, string Str="dfdsagsdavsefsaxccccfffsadfdsgsdgdsbsadsvewa fdsgujsdsdcdcvasfccccccccsawdsda
js實現字串換行
js中字串多行書寫是個比較麻煩的問題,其實咋們通過匿名函式可以實現這個功能: Function.prototype.getMultiLine = function() { var lines = new String(this); lines = l
vs長字串換行
在VS中寫程式碼 ,如果字串很長,我們希望他換行顯示, string Str="dfdsagsdavsefsaxccccfffsadfdsgsdgdsbsadsvewa fdsgujsdsdcdcvasfccccccccsawds
js字串換行
console.log("\ * url:https://ad.hbwjkj.com.cn/?A=api&c=home&a=bdmap¶=0 \n\ * mec
Python字串換行的3種方式
if __name__ == '__main__': #第一種:三個單引號 print '''我是一個程式設計師 我剛開始學習python''' #第二種:三個雙引號 print """我是一個程式設計師 我剛開始學習py
shell如何將文字檔案字串換行後轉換為陣列
1 #!/bin/sh 2 #首先判斷有沒有啟動失敗的檔案,有則處理 3 if [ -f "./task_start_failed.log" ]&&[ ` ls -l task_start_failed.log| awk '{print $5}' `
使用回車或換行分割字串例子
int i = 13;//回車Ascii碼值 int ii = 10;//換行Ascii碼值 char c = (char)i; char cc = (char)ii; String s = "甄唯一"+c+cc+"only"; String strs [] = s.spl
cocos2d-x 多行字串換行顯示以及CCLabelTTF中的bug修改
重點程式碼 //多行字串顯示(EngLish) CCLabelTTF* Dlcx_Util::dlcx_drawString( const char * str ,float x,float y,float w,float h, GLubyte r,GLubyte g,
datagrid的文字換行與連續字串換行處理,字串三種擷取方式
1 文字自動換行:nowrap:false 2 當時字串,比如email這樣的欄位時,就需要用到字串的拼接,首先,先貼出我解決問題的方法,再介紹字串的三種拼接方式: 我解決問題的方法:
Direct3D基礎——預備知識:多重取樣、畫素格式、記憶體池、交換鏈和頁面置換、深度快取、頂點運算、裝置效能
多重取樣 用畫素矩陣表示影象的時候往往會出現塊狀效應,多重取樣便是一項用於平滑塊狀影象的技術。 圖片來自:DirectX9.03D遊戲開發程式設計基礎 左邊那條是一條鋸齒線,右邊是一條經過取樣的反走樣線,看上去要平滑的多。 D3DMULTISAMPLE_TYPE列舉型別包含
物理畫素、CSS畫素、dip、dpr、ppi、dpi
物理畫素(physical pixel) 物理畫素又被稱為裝置畫素(dp),他是顯示裝置中一個最微小的物理部件。一個裝置的物理畫素是固定不變的。每個畫素可以根據作業系統設定自己的顏色和亮度。所謂的一倍屏、二倍屏(Retina)、三倍屏,指的是裝置以多少物理畫素來
移動端web頁面知識小結之畫素密度、解析度、螢幕尺寸
一直以來,本人對移動端解析度、畫素等概念傻傻分不清,特查閱多位牛人部落格後總結如下要點,以便日後檢視。 文件來源 螢幕解析度 是指螢幕上垂直方向和水平方向上的畫素個數,單位是px。常見取值 480X800,320X480等 IPhone手
移動端web頁面知識小結之畫素、物理畫素、邏輯畫素
一直以來,本人對移動端解析度、畫素等概念傻傻分不清,特查閱多位牛人部落格後總結如下要點,以便日後檢視。 文件來源 CSS畫素 CSS畫素是沒有實際大小的抽象單位,它是一個相對長度,它相對的是電腦或手機顯示器的解析度。 但在不同的
C++中換行符‘\n’和控制符‘endl’的區別(cout和printf區別)
1.顯示字串時,在字串中包含換行符,而不是在末尾加上endl,可以減少輸入量 2.如果生成一個空行,則兩種方法的輸入量相同,但對大多數人而言輸入endl更為方便 3.顯示引號括起來的字串通常使用換行符
常用的畫素操作演算法:影象加法、畫素混合、提取影象中的ROI
影象可以是看成是一個多維的陣列。讀取一張圖片,可以看成是讀入了一系列的畫素內容。這些畫素內容,按
C#生成縮圖,指定畫素大小
using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using