Re: [問題] vc++ 繪圖問題

看板C_and_CPP (C/C++)作者 (好人超)時間15年前 (2010/12/03 23:56), 編輯推噓3(305)
留言8則, 2人參與, 最新討論串3/3 (看更多)
兩種解法: 一、例外捕捉法 private: System::Void Form1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) { Pen^ myPen=gcnew Pen(Color::Black,0.1f); try { int x = Convert::ToInt32(textBox1->Text); //這行是要將textbox的內容轉成數字 Point startPt=Point(x,200); Point endPt=Point(100,200); e->Graphics->DrawLine(myPen,startPt,endPt); } catch (Exception ^e) { MessageBox::Show("請在TextBox輸入數值"); } } private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) { this->Invalidate(); } 二、if判斷法 private: System::Void Form1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) { Pen^ myPen=gcnew Pen(Color::Black,0.1f); if (textBox1->Text != L"") { int x = Convert::ToInt32(textBox1->Text); //這行是要將textbox的內容轉成數字 Point startPt=Point(x,200); Point endPt=Point(100,200); e->Graphics->DrawLine(myPen,startPt,endPt); } else { MessageBox::Show("請在TextBox輸入數值"); } } private: System::Void textBox1_TextChanged(System::Object^ sender, System::EventArgs^ e) { this->Invalidate(); } 其實我不喜歡直接給程式碼,但是大家的推文都講得差不多了... 這隻程式裡面要注意的「點」其實挺多的,譬如: (1) Form1_Paint 這個函式,在什麼時候會被呼叫?它該做什麼? (2) 為什麼要有另一個 textBox1_TextChanged 函式?它該做什麼? (在你的程式裡,它的名稱不一樣,但意義是相同的) 如果你能夠想通這兩個問題,那這個程式應該就可以理解了 另外,更進一步還可以思考,這兩種寫法到底有什麼差異,優劣是什麼? 如果有哪裡看不懂,就把程式碼註解起來跑跑看,觀察會發生什麼事 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.171.46 ※ 編輯: james732 來自: 140.117.171.46 (12/04 00:00)

12/04 00:07, , 1F
非常感謝你!!
12/04 00:07, 1F

12/04 00:07, , 2F
我會想辦法融會貫通的!!
12/04 00:07, 2F

12/04 00:34, , 3F
雖然解決了問題 但是和構想的還是有差異
12/04 00:34, 3F

12/04 00:34, , 4F
原po能不能推薦網站給我呢?
12/04 00:34, 4F

12/04 00:35, , 5F
視窗程式和原本的c++ 差好多阿..
12/04 00:35, 5F
我也是看了很多資料才稍懂的 而且其實我比較習慣是用C#寫視窗...XDD 只能說多看多學習了,加油囉 (如果板友們知道有什麼聖經可以推薦的,也拜託大家一下) ※ 編輯: james732 來自: 140.117.171.46 (12/04 00:37)

12/04 00:47, , 6F
剛剛兩種方法都試過了 也google了一些不懂的地方
12/04 00:47, 6F

12/04 00:47, , 7F
但舊的問題解決又跑出新的XDD
12/04 00:47, 7F

12/04 16:36, , 8F
看你要不要po板問囉
12/04 16:36, 8F
文章代碼(AID): #1C-HCxQO (C_and_CPP)
文章代碼(AID): #1C-HCxQO (C_and_CPP)