CWnd::CreateEx

本文详细介绍了CWnd::CreateEx函数的用法,包括参数解释和示例使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                    CWnd::CreateEx

创建指定的窗口并将它附加到 CWnd 对象。 

virtual BOOL CreateEx(

   DWORD dwExStyle,

   LPCTSTR lpszClassName,

   LPCTSTR lpszWindowName,

   DWORD dwStyle,

   int x,

   int y,

   int nWidth,

   int nHeight,

   HWND hWndParent,

   HMENU nIDorHMenu,

   LPVOID lpParam = NULL 

);

virtual BOOL CreateEx(

   DWORD dwExStyle,

   LPCTSTR lpszClassName,

   LPCTSTR lpszWindowName,

   DWORD dwStyle,

   const RECT& rect,

   CWnd* pParentWnd,

   UINT nID,

   LPVOID lpParam = NULL

);

参数:

dwExStyle

按位组合()的 扩展窗口样式;否则该默认的 NULL 扩展的窗口样式。

lpszClassName

对包含注册的系统窗口选件类的名称为Null结尾的字符串的指针;或预定义的系统窗口选件类的名称。

lpszWindowName

对包含窗口显示名称为的Null结尾的字符串的指针;否则没有windows显示名称的 NULL。

dwStyle

按位组合()的 窗口样式;否则默认窗口样式的 NULL。

x

窗口的初始图边距从屏幕或父窗口的左侧。

y

窗口的最初的垂直距离屏幕或父窗口的顶部。

nWidth

宽度,以像素,窗口。

nHeight

高度,均以像素,窗口。

hwndParent

为子窗口,处理到父窗口;否则,所有者窗口的句柄,如果窗口都有一个所有者。

nIDorHMenu

为子窗口,这些窗口ID;否则,一个菜单的ID窗口中。

lpParam

对传递到在 lpCreateParams 字段的 CWnd::OnCreate 方法的用户数据的指针。

rect

窗口的大小和位置相对于屏幕或父窗口的。

pParentWnd

为子窗口,指向父窗口;否则,指向所有者窗口,如果窗口都有一个所有者。

nID

为子窗口,这些窗口ID;否则,一个菜单的ID窗口中。

#include <windows.h> class CWnd { public: BOOL CreateEx(DWORD dwExStyle, // extended window style LPCTSTR lpClassName, // registered class name LPCTSTR lpWindowName, // window name DWORD dwStyle, // window style int x, // horizontal position of window int y, // vertical position of window int nWidth, // window width int nHeight, // window height HWND hWndParent, // handle to parent or owner window HMENU hMenu, // menu handle or child identifier HINSTANCE hInstance, // handle to application instance LPVOID lpParam); // window-creation data BOOL ShowWindow(int nCmdShow); BOOL UpdateWindow(); public: HWND m_hWnd; }; BOOL CWnd::CreateEx(DWORD dwExStyle, // extended window style LPCTSTR lpClassName, // registered class name LPCTSTR lpWindowName, // window name DWORD dwStyle, // window style int x, // horizontal position of window int y, // vertical position of window int nWidth, // window width int nHeight, // window height HWND hWndParent, // handle to parent or owner window HMENU hMenu, // menu handle or child identifier HINSTANCE hInstance, // handle to application instance LPVOID lpParam) // window-creation data { m_hWnd=::CreateWindowEx(dwExStyle,lpClassName,lpWindowName,dwStyle, x,y,nWidth,nHeight,hWndParent,hMenu,hInstance,lpParam); if(m_hWnd!=NULL) return TRUE; else return FALSE; } BOOL CWnd::ShowWindow(int nCmdShow) { return ::ShowWindow(m_hWnd,nCmdShow); } BOOL CWnd::UpdateWindow() { return ::UpdateWindow(m_hWnd); } LRESULT CALLBACK MyWndProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ); int WINAPI WinMain( HINSTANCE hInstance, // handle to current instance HINSTANCE hPrevInstance, // handle to previous instance LPSTR lpCmdLine, // command line int nCmdShow // show state ) { WNDCLASS MyWnd; MyWnd.cbClsExtra = NULL; MyWnd.cbWndExtra = NULL; MyWnd.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); MyWnd.hCursor = LoadCursor(NULL, IDC_ARROW); MyWnd.hIcon = LoadIcon(NULL, IDI_APPLICATION); MyWnd.hInstance = hInstance; MyWnd.lpfnWndProc = MyWndProc; MyWnd.lpszClassName = "Hello"; MyWnd.lpszMenuName = NULL; MyWnd.style = CS_HREDRAW | CS_VREDRAW; RegisterClass(&MyWnd); CWnd wnd; wnd.CreateEx(0,"Hello","CWnd", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, NULL,NULL,hInstance,NULL); wnd.ShowWindow(SW_SHOWNORMAL); wnd.UpdateWindow(); MSG msg; while (GetMessage(&msg,NULL,0,0)) //?????????? { TranslateMessage(&msg); //???? //4.???? DispatchMessage(&msg); //??????????? } return 0; } LRESULT CALLBACK MyWndProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ) { switch (uMsg) { case WM_PAINT: { PAINTSTRUCT ps; HDC hdc = BeginPaint(hwnd, &ps); // 在窗口中心绘制"Hello, World!" RECT rect; GetClientRect(hwnd, &rect); const char* text = "Hello, World!"; DrawText( hdc,text, -1, &rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER ); EndPaint(hwnd, &ps); break; } case WM_MOUSEMOVE: if (wParam & MK_LBUTTON) // 左键拖拽时绘制 { // 记录轨迹点... InvalidateRect(hwnd, NULL, FALSE); } break; case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd,uMsg,wParam,lParam); } return 0; } 拓展各种功能,尽可能多
最新发布
04-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值