明明白白看MFC之程序框架(一)

導讀:
  對於程序員來說,如果要提高編程效率,一個好用的,功能強大的並且可以得心應手使用的編程工具往往會給我們程序員帶來莫大的方便。其實對於現在的編程工具來說,使用哪
  一種工具都不是問題的關鍵,重要的是你能夠使用到什麼程度,畢竟現在的工具都是非常的強大,對於一般的編程任務來說還沒有不能夠勝任的工具,否則的話恐怕他就不可能在這個世界上存在哪怕是隻有一個月的生命。但是根據個人所好以及周圍的人的影響,我們都會去使用某一種或者幾種工具。比較Visual Basic 、C++ Builder和Delphi等編程工具,用VC++編寫Windows應用程序可以說是最富於挑戰性和艱鉅性。在本文中我無意去比較各種工具的好壞,僅就我自己學習Visual C++的MFC的體會和心得拿出來與大家一起分享和交流,也希望可以結識更多的志同道合的朋友。
  就我個人的偏見,學習VC++就應該要學習他的類庫MFC(Microsoft Foundation Classes)。也許有的人一聽說MFC就有點望而生畏,這是可以理解的,畢竟Microsoft雖然給了我們一個強大而且非常複雜的類庫,但是沒有給我們帶來學習他的好的方便之處。回想自己學習MFC時的無助和迷茫,以及所走過的彎路,現在想起來還心有餘悸,雖然我現在也還是處於非常初級的初級入門階段,但是還是很樂意把自己的心得和體會拿出來一起與大家分享。也希望得到大家的指點。
  一、SDK應用程序結構
  我學習MFC之路可是從windows編程開始的(可能這一開始就是彎路了^_^)。首先也請大家跟着我一起看一個SDK應用程序結構的Windows應用程序。當然也是經典的“Hello world!”了,編寫的過程就不必羅嗦了,下面給出他的主要源代碼(我使用嚮導生成的,但是爲了閱讀的方便經過了一點點的編輯):
  LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
  int APIENTRY WinMain(HINSTANCE hInstance,
  HINSTANCE hPrevInstance,
  LPSTR lpCmdLine,
  int nCmdShow)
  {
  // TODO: Place code here.
  MSG msg;
  ………………………………
  MyRegisterClass(hInstance);
  if (!InitInstance (hInstance, nCmdShow))
  {
  return FALSE;
  }
  // Main message loop:
  while (GetMessage(&msg, NULL, 0, 0))
  {
  if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
  {
  TranslateMessage(&msg);
  DispatchMessage(&msg);
  }
  }
  return msg.wParam;
  }
  BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
  {
  ……………………
  return TRUE;
  }
  //窗口函數WndProc(),回調函數
  LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
  {
  int wmId, wmEvent; 

本文轉自
http://www.enadd.com/appdev/vc/vcins/200604/appdev_7410.html
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章