Archive for 7月 4th, 2012
-
Hello, Win32 GUI(WTL) World!
Posted on 7月 4th, 2012 by cx20
Win32 GUI(WTL)
Win32 アプリケーションは Windows 標準 API である Win32 API を使用した Windows アプリケーションである。
以下は VC++(WTL) における Win32 GUI アプリケーション の例となっている。ソースコード
#include <atlbase.h> #include <atlapp.h> #include <atlcrack.h> class CHelloWindow : public CWindowImpl<CHelloWindow> { BEGIN_MSG_MAP( CHelloWindow ) MSG_WM_PAINT ( OnPaint ) MSG_WM_DESTROY ( OnDestroy ) END_MSG_MAP() void OnPaint( HDC hDC ) { CPaintDC dc( m_hWnd ); LPCTSTR lpszMessage = _T("Hello, Win32 GUI(WTL) World!"); dc.TextOut( 0, 0, lpszMessage, lstrlen(lpszMessage) ); } void OnDestroy() { PostQuitMessage( 0 ); } }; CAppModule _Module; int APIENTRY _tWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow ) { _Module.Init(NULL, hInstance); CMessageLoop theLoop; _Module.AddMessageLoop(&theLoop); CHelloWindow wnd; wnd.Create( NULL, CWindow::rcDefault, _T("Hello, World!"), WS_OVERLAPPEDWINDOW | WS_VISIBLE ); wnd.ResizeClient( 640, 480 ); int nRet = theLoop.Run(); _Module.RemoveMessageLoop(); _Module.Term(); return nRet; }
コンパイル方法
C:¥> SET INCLUDE=<WTL>Include;%INCLUDE C:¥> cl hello.cpp
実行結果
+------------------------------------------+ |Hello, World! [_][~][X]| +------------------------------------------+ |Hello, Win32 GUI(WTL) World! | | | | | | | | | | | | | | | | | | | +------------------------------------------+