WEB开发网
开发学院软件开发VC MFC程序员WTL指南(2)ATL界面类 阅读

MFC程序员WTL指南(2)ATL界面类

 2008-01-19 20:26:41 来源:WEB开发网   
核心提示:// main.cpp:#include "MyWindow.h"CComModule _Module;int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hInstPrev, LPSTR szCmdLine, int nCmdShow){ _Module.I

// main.cpp:
#include "MyWindow.h"
CComModule _Module;
int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hInstPrev,
          LPSTR szCmdLine, int nCmdShow)
{
   _Module.Init(NULL, hInst);
   CMyWindow wndMain;
   MSG msg;
   // Create & show our main window
   if ( NULL == wndMain.Create ( NULL, CWindow::rcDefault,
                 _T("My First ATL Window") ))
   {
     // Bad news, window creation failed
     return 1;
   }
   wndMain.ShowWindow(nCmdShow);
   wndMain.UpdateWindow();
   // Run the message loop
   while ( GetMessage(&msg, NULL, 0, 0) > 0 )
   {
     TranslateMessage(&msg);
     DispatchMessage(&msg);
   }
   _Module.Term();
   return msg.wParam;
}

上面的代码唯一需要说明的是CWindow::rcDefault,这是CWindow中的成员(静态数据成员),数据类型是RECT。和调用CreateWindow() API时使用CW_USEDEFAULT指定窗口的宽度和高度一样,ATL使用rcDefault作为窗口的最初大小。

在ATL代码内部,ATL使用了一些类似汇编语言的魔法将主窗口的句柄与相应的CMyWindow对象联系起来,在外部看来就是可以毫无问题的在线程之间传递CWindow对象,而MFC的CWnd却不能这样作。

这就是我们的窗口:

我得承认这确实没有什么激动人心的地方。我们将添加一个About菜单并显示一个对话框,主要是为它增加一些情趣。

上一页  2 3 4 5 6 7 8  下一页

Tags:MFC 程序员 WTL

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接