友情提示:如果本网页打开太慢或显示不完整,请尝试鼠标右键“刷新”本网页!阅读过程发现任何错误请告诉我们,谢谢!! 报告错误
狗狗书籍 返回本书目录 我的书架 我的书签 TXT全本下载 进入书吧 加入书签

深入浅出MFC第2版(PDF格式)-第19章

按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!




     以是任何命令列动作,本例为                。 



     因此,我们就可以把不同文件间的依存关系做一个整理,以makefile 语法描述,以产生 



                       makefile   NMAKE。EXE  Microsoft    MAKE。EXE 

     必要的编译、联结动作。             必须以            (       工具)或 



      Borland                                             MAKE。EXE 

      (     工具)处理之,或其它编译器套件所附的同等工具(可能也叫做                           ) 



     处理之。 



                                                                        9 


…………………………………………………………Page 72……………………………………………………………

                   Generic。mak  (请在DOS 窗口中执行nmake generic。mak。环境设定请参考p。224) 



                   #0001  # filename : generic。mak 

                   #0002  # make file for generic。exe (Generic Windows Application) 

                   #0003  # usage : nmake generic。mak (Microsoft C/C++ 9。00) (Visual C++ 2。x) 

                   #0004  # usage : nmake generic。mak (Microsoft C/C++ 10。00) (Visual C++ 4。0) 

                   #0005 

                   #0006  all: generic。exe 

                   #0007 

                   #0008  generic。res : generic。rc generic。h 

                   #0009      rc generic。rc 

                   #0010 

                   #0011  generic。obj : generic。c generic。h 

                   #0012      cl …c …W3 …Gz …D_X86_ …DWIN32 generic。c 

                   #0013 

                   #0014  generic。exe : generic。obj generic。res 

                   #0015      link /MACHINE:I386 …subsystem:windows generic。res generic。obj  

                   #0016           libc。lib kernel32。lib user32。lib gdi32。lib 



                   Generic。h 



                   #0001  //……………………………………………………………………………………………………………………………………………………………………

                   #0002  // 档名 : generic。h 

                   #0003  //……………………………………………………………………………………………………………………………………………………………………

                   #0004  BOOL InitApplication(HANDLE); 

                   #0005  BOOL InitInstance(HANDLE; int); 

                   #0006  LRESULT CALLBACK WndProc(HWND; UINT; WPARAM; LPARAM); 

                   #0007  LRESULT CALLBACK About(HWND; UINT; WPARAM; LPARAM); 



                   Generic。c   (粗体代表Windows API 函数或宏) 



                   #0001  //……………………………………………………………………………………………………………………………………………………………………



                  #0002 // Generic Win32 程序的基础写法 

                  #0003 // Top Studio * J。J。Hou 



                   #0004 // 档名 : generic。c 

                   #0005 // 作者 : 侯俊杰 

                   #0006 // 编译联结 : 请参考generic。mak 

                   #0007  //……………………………………………………………………………………………………………………………………………………………………

                   #0008 

                   #0009  #include    // 每一个 Windows 程序都需要包含此档 

                   #0010  #include 〃resource。h〃  // 內含各个 resource IDs 

                   #0011  #include 〃generic。h〃   // 本程序之含入档 

                   #0012 

                   #0013  HINSTANCE _hInst;      // Instance handle 

                   #0014  HWND       _hWnd; 



10 


…………………………………………………………Page 73……………………………………………………………

#0015 

#0016  char _szAppName'' = 〃Generic〃;    //  

                                             程序名称 

#0017  char _szTitle''   = 〃Generic Sample Application〃; //  

                                                              窗口标题 

#0018 

#0019  //……………………………………………………………………………………………………………………………………………………………………

#0020  // WinMain 程序进入点 

#0021  //……………………………………………………………………………………………………………………………………………………………………

#0022  int CALLBACK WinMain (HINSTANCE hInstance; HINSTANCE hPrevInstance; 

#0023                         LPSTR lpCmdLine;     int nCmdShow) 

#0024  { 

#0025  MSG msg; 

#0026 

#0027    UNREFERENCED_PARAMETER (lpCmdLine);      //  

                                                     避免编译时的警告 

#0028 

#0029    if (!hPrevInstance) 

#0030        if (!InitApplication(hInstance)) 

#0031            return (FALSE); 

#0032 

#0033    if (!InitInstance(hInstance; nCmdShow)) 

#0034        return (FALSE); 

#0035 

#0036    while (GetMessage (&msg; NULL; 0; 0)) { 

#0037        TranslateMessage (&msg); 

#0038        DispatchMessage (&msg); 

#0039    } 

#0040 

#0041    return (msg。wParam); //  

                                  传回 PostQuitMessage  

                                                        的参数 

#0042  } 

#0043  //……………………………………………………………………………………………………………………………………………………………………

#0044  // InitApplication  

                             注册窗口类别 

#0045  //……………………………………………………………………………………………………………………………………………………………………

#0046  BOOL InitApplication(HINSTANCE hInstance) 

#0047  { 

#0048  WNDCLASS  wc; 

#0049 

#0050    wc。style         = CS_HREDRAW | CS_VREDRAW; 

#0051    wc。lpfnWndProc   =  (WNDPROC)WndProc;     //窗口函数 

#0052    wc。cbClsExtra    = 0; 

#0053    wc。cbWndExtra    = 0; 

#0054    wc。hInstance     = hInstance; 

#0055    wc。hIcon         = LoadIcon(hInstance; 〃jjhouricon〃); 

#0056    wc。hCursor       = LoadCursor(NULL; IDC_ARROW); 

#0057    wc。hbrBackground = GetStockObject(WHITE_BRUSH);  // 窗口背景颜色 

#0058    wc。lpszMenuName  = 〃GenericMenu〃;                //  。RC  

                                                                 所定义的菜单 

#0059    wc。lpszClassName = _szAppName; 

#0060 



                                                                                       11 


…………………………………………………………Page 74……………………………………………………………

                    #0061    return (RegisterClass (&wc)); 

                    #0062  } 

                    #0063  //……………………………………………………………………………………………………………………………………………………………………

                    #0064  // InitInstance  

                                               产生窗口 

                    #0065  //……………………………………………………………………………………………………………………………………………………………………

                    #0066  BO
返回目录 上一页 下一页 回到顶部 0 0
未阅读完?加入书签已便下次继续阅读!
温馨提示: 温看小说的同时发表评论,说出自己的看法和其它小伙伴们分享也不错哦!发表书评还可以获得积分和经验奖励,认真写原创书评 被采纳为精评可以获得大量金币、积分和经验奖励哦!