中使用計劃
程序為你定義了一個命名空間HelloWorld,命名空間可以簡單的理解為完成相似功能的類的集合。在這里,就是該空間里的類共同為程序\"HelloWorld\"“賣力氣”。之后的一些using namespace xxx;語句表示將要使用到System空間里的這些類,都是已定義好的。之后的代碼
public __gc class frmMain : public System::Windows::Forms::Form
{
public:
frmMain(void)
{
InitializeComponent();
}
protected:
void Dispose(Boolean disposing)
{
if (disposing components)
{
components-Dispose();
}
__super::Dispose(disposing);
}
private: System::Windows::Forms::Button * btnSay;
private: System::Windows::Forms::Label * lblShow;
private:
///
/// Required designer variable.
///
System::ComponentModel::Container * components;
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
void InitializeComponent(void)
{
this-btnSay = new System::Windows::Forms::Button();
this-lblShow = new System::Windows::Forms::Label();
this-SuspendLayout();
//
// btnSay
//
this-btnSay-Location = System::Drawing::Point(72, 152);
this-btnSay-Name = S\"btnSay\";
this-btnSay-Size = System::Drawing::Size(144, 24);
this-btnSay-TabIndex = 0;
this-btnSay-Text = S\"Say Hello\";
this-btnSay-Click += new System::EventHandler(this, button1_Click);
//
// lblShow
//
this-lblShow-Font = new System::Drawing::Font(S\"SimSun\", 15, System::Drawing::FontStyle::Bold, System::Drawing::GraphicsUnit::Point, (System::Byte)134);
this-lblShow-ForeColor = System::Drawing::SystemColors::Desktop;
this-lblShow-Location = System::Drawing::Point(48, 56);
this-lblShow-Name = S\"lblShow\";
this-lblShow-Size = System::Drawing::Size(192, 24);
this-lblShow-TabIndex = 1;
//
// frmMain
//
this-AutoScaleBaseSize = System::Drawing::Size(6, 14);
this-ClientSize = System::Drawing::Size(292, 273);
this-Controls-Add(this-lblShow);
this-Controls-Add(this-btnSay);
this-Name = S\"frmMain\";
this-Text = S\"Form1\";
旨在宣傳推介 this-ResumeLayout(false);
}
private: System::Void button1_Click(System::Object * sender, System::EventArgs * e)
{
this-lblShow-Text = \"Hello,the World!\";
}
};
是對Form1類的完整定以及實現。可以看到,我們向窗體加進來的控件成為了它的成員變量,類型就是相應控件類的指針。因此在代碼中引用控件時,要指明“this-”。窗體的構造函數中調用了void InitializeComponent(void),負責初始化所有的控件和主窗體。這些賦值語句就對應著設計界面上你在屬性列表里做的修改動作,實際上這種在初始化時給屬性賦值的做法同以往完全一樣。你可以在這里直接修改某某控減的某某值。注意
this-btnSay-Click += new System::EventHandler(this, button1_Click);
btnSay-Click是指按鈕的Click事件,button1_Click就是后面那個處理單擊事件的成員函數的指針。這就如同傳統的WindowProc()函數一樣,系統截獲事件后,會調用你指定的函數處理。這一行就是將該函數與系統預留的回調函數綁定。要處理控件的其他事件,以同樣的方式將你的事件處理函數指針賦給Ctrl-Event(Ctrl代表任意控件,Event代表任意事件)。你會發現,當我們在設計界面雙擊某一控件時,會自動加入類似上面的代碼,并等待你添加它的函數體,也就是事件處理過程,而自動添加的都是其默認事件,如按鈕的Click,窗體的Load等。這樣很類似于VB的工作方式。
上面筆者簡單地將代碼和設計聯系了起來,下面說說更有意思的。有兩件事一直是實現VC++窗體很頭疼的,就是圖片和菜單。現在有了熟悉的PictureBox控件,圖形變得簡單了一些。菜單的更加簡單。向窗體添加一個MainMenu控件,點擊那個灰色的\"TYPE HERE\"輸入菜單項,雙擊已好的項目就可以編寫菜單事件了,比起原來作為資源來添加,既直觀又不容易錯。我想你會大聲高呼:“這就是個VB!”的確,我也這么想。
說了這么多,你會猜到程序設計變得如此方便的同時就會有什么東西作為代價了,對,那一定就是性能。C++在同類語言中一向是以性能著稱的,正是因為C++程序員能夠對整個程序進行靈活的控制,才使其具有高性能,不管是在類的設計、程序流程還是內存管理等等方面。因此有時候繁重的工作量是必需的。現在代碼被封裝了,方便的同時也存在降低性能的可能性。但對于一般的應用程序來說,這倒是不算什么問題。畢竟高效率的開發方式是很容易讓人接受的。 查看本文來源
沈陽哪家治療白癜風醫院好杭州治療白癜風多少錢
濟南治療婦科哪家醫院好