使用ATL::CWindowImpl实现Win32窗口
来源:互联网 发布:有淘宝网店怎么贷款 编辑:程序博客网 时间:2024/05/17 10:54
开发大型GUI界面程序MFC当仁不让,但如果是开发图形应用程序,并不需要大规模界面控件,没有必要链接庞大的MFC库,直接使用platform sdk会很麻烦,这时ATL中的关于Windows的封装就是最好的选择
- #include <atlbase.h>
- #include <atlwin.h>
- class CMyWindow
- : public CWindowImpl<CMyWindow, CWindow, CWinTraits<WS_OVERLAPPEDWINDOW, 0> >
- {
- public:
- DECLARE_WND_CLASS(_T("CMyWindow"))
- BEGIN_MSG_MAP(CMyWindow)
- MESSAGE_HANDLER(WM_PAINT, OnPaint)
- END_MSG_MAP()
- LRESULT OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL & bHandled)
- {
- PAINTSTRUCT ps;
- ::BeginPaint(m_hWnd, &ps);
- ::EndPaint(m_hWnd, &ps);
- bHandled = TRUE;
- return 0;
- }
- void OnFinalMessage(HWND hwnd)
- {
- ::PostQuitMessage(0);
- }
- };
- int APIENTRY _tWinMain(HINSTANCE hInstance,
- HINSTANCE hPrevInstance,
- LPTSTR lpCmdLine,
- int nCmdShow)
- {
- CMyWindow myWnd;
- myWnd.Create(NULL, CMyWindow::rcDefault, _T("Hello, world"));
- myWnd.ShowWindow(nCmdShow);
- myWnd.UpdateWindow();
- MSG msg;
- msg.message = ~(UINT)WM_QUIT;
- while(msg.message != WM_QUIT)
- {
- if(::GetMessage(&msg, NULL, 0, 0))
- {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- }
- return (int)msg.wParam;
- }
- 使用ATL::CWindowImpl实现Win32窗口
- 使用ATL::CWindowImpl实现Win32窗口
- ATL学习实践(VC8)-用CWindowImpl实现窗口
- ATL中的CWindowImpl模板类
- 使用ATL 窗口类
- 使用ATL 窗口类
- CWindowImpl
- 在ATL DLL中实现在窗口中使用CDockablePane
- 在ATL中实现窗口
- ATL窗口继承实现机制
- 在ATL中实现窗口
- ATL窗口实现的学习
- 在ATL中实现窗口
- win32使用ATL显示C#COM窗体
- 在ATL中实现窗口(精)
- 使用ATL来写个简单的窗口程序
- 使用ATL创建窗口的步骤
- ATL窗口
- 检查域名是否可用
- 偶遇ORA-07445 [kslgetl()+120] [SIGSEGV] [Address not mapped to object] [0x000000208] [] [] 和ORA-00108
- Pro Android学习笔记(三):了解Android资源(上)
- PHPCMS二级栏目
- 采用数据模型和数据库同步技术 -- TraceListener类
- 使用ATL::CWindowImpl实现Win32窗口
- winpe定制
- 如何搭建个人网站
- PHP面向对象
- 教你如何在海量数据中用算法处理面试题
- 基于VirtualBox虚拟机的Windbg内核调试设置
- usaco1.1
- 黑马程序员_JAVA语言基础 标识符、变量、运算符
- 十六周 项目二:挂科不进新名单