1. 程式人生 > >困擾我一個小時的問題 SetToolTip

困擾我一個小時的問題 SetToolTip

我想做的是滑鼠停留在文字框時,用tip方式顯示文字框內的內容,如果內容長度大於10時,換行顯示

之前的錯誤:
  1. wxString str = TextCtrl1->GetValue();
  2. wxString value = _("");
  3. if (str.size() > 10)
  4. {
  5.     wxString temp = str.substr(0, 10);
  6.     str = str.substr(10, str.size() - 10);
  7.     value += temp;
  8.     value += _("/n");
  9. }
  10. value += str;
  11. TextCtrl1->SetToolTip(value);
這樣寫我覺得是沒有問題的,因為當我使用
  1. wxString value = _("dsadsad/ndsa"
    );
  2. TextCtrl1->SetToolTip(value);
是可以正常換行顯示的,我左思右想不得其解,我也不知道這是不是wxWidgets的BUG,在網上找資料也很難找到相關的資料。

後來查看了SetToolTip函式還有另外一個入參wxToolTip
於是我修改了一下之前的程式碼:
  1. wxString str = TextCtrl1->GetValue();
  2. wxString value = _("");
  3. if (str.size() > 10)
  4. {
  5.    wxString temp = str.substr(0, 10);
  6.    str = str.substr(10, str.size() - 10);
  7.    value += temp;
  8.    value += _("/n");
  9. }
  10. value += str;
  11. wxToolTip* tt = new wxToolTip(value);
  12. TextCtrl1->SetToolTip(tt);
再一執行,一切正常。

為了防止自己忘記了,所以記下來,以後翻看。