2014-12-03 87 views
0

我需要爲窗體窗體的標籤設置字符串的寬度。正如我在搜索我沒有發現任何字符串函數來設置寬度。另外我tryed與ostringstream做到這一點,但它似乎不工作:(設置字符串的寬度或將字符串添加到標籤

  ostringstream oss; 
      oos << "HI "; 
      string str = oos.str(); 
      labek->Text += str; 
+2

你是什麼意思?標籤大小(像素)或字符串大小(字符)? – SHR 2014-12-03 18:02:17

+1

如果您打算使用'ostringstream'查看[IO Manipulators](http://en.cppreference.com/w/cpp/io/manip)。 – 2014-12-03 18:02:31

+0

很抱歉忘了補充一點。字符 – benR 2014-12-03 18:02:44

回答

0

這個例子看看:

#include <iostream> 
#include <sstream> 
using namespace std; 

int main(){ 
    wostringstream oss; 
    oss.width(5); //<--- set desired width in characters 
    oss.fill(' '); //<-- what fill character you want to use to complete to width. 
    oss << "HI "; 
    wstring str = oss.str(); 
    //cout<<"'"<<str<<"'"<<endl; 
    //now you should do: label->Text = str.c_str(); but, alas, I doesn't have this label... 

    return 0; 
} 

編輯

這爲我工作。我添加了一個新窗體,名爲label1的標籤和一個名爲button1的按鈕。

當我按下按鈕t他的標籤被改變了。

添加這些包括:

#include <msclr\marshal.h> 
#include <msclr\marshal_cppstd.h> 

這裏是按鈕點擊功能:

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { 
     std::wostringstream oss; 
     oss.width(15); //<--- set desired width in characters 
     oss.fill('*'); //<-- what fill character you want to use to complete to width. 
     oss << "HI"; 
     std::wstring str = oss.str(); 
     label1->Text = msclr::interop::marshal_as<String^>(str); 
    } 
+0

嗯,我理解ostringstream寬度atributte,但問題是我需要添加它的標籤(標籤 - >文本= str),我無法使用cout:Ty答覆! – benR 2014-12-03 18:13:18

+0

嗯,我試圖做到這一點,但我得到的錯誤函數系統::窗口::形式::標籤::文本::設置不能用std :: string – benR 2014-12-03 18:17:04

+0

調用現在的錯誤是標籤文本集不能用const調用char * – benR 2014-12-03 18:19:47