我需要爲窗體窗體的標籤設置字符串的寬度。正如我在搜索我沒有發現任何字符串函數來設置寬度。另外我tryed與ostringstream做到這一點,但它似乎不工作:(設置字符串的寬度或將字符串添加到標籤
ostringstream oss;
oos << "HI ";
string str = oos.str();
labek->Text += str;
我需要爲窗體窗體的標籤設置字符串的寬度。正如我在搜索我沒有發現任何字符串函數來設置寬度。另外我tryed與ostringstream做到這一點,但它似乎不工作:(設置字符串的寬度或將字符串添加到標籤
ostringstream oss;
oos << "HI ";
string str = oos.str();
labek->Text += str;
這個例子看看:
#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);
}
你是什麼意思?標籤大小(像素)或字符串大小(字符)? – SHR 2014-12-03 18:02:17
如果您打算使用'ostringstream'查看[IO Manipulators](http://en.cppreference.com/w/cpp/io/manip)。 – 2014-12-03 18:02:31
很抱歉忘了補充一點。字符 – benR 2014-12-03 18:02:44