//初始化 //初始化包括窗口类的定义、注册、创建窗口实例和显示窗口四部分 { HWND hwnd; MSG Msg; WNDCLASS wndclass; char lpszClassName[]="窗口";//窗口类名 char lpszTitle[]="徐新坡"; //窗口标题名 //窗口类定义 //窗口类定义了窗口的形式与功能 窗口类定义通过给窗口类数据结构WNDCLASS赋值完成 //该数据结构中包含窗口类的各种属性 wndclass.style =0; // 窗口类型为缺省类型 wndclass.lpfnWndProc=WndProc; //定义窗口处理函数 wndclass.cbClsExtra=0; //窗口类无扩展 wndclass.cbWndExtra=0; //窗口实例无扩展 wndclass.hInstance=hInstance; //当前实例句柄 wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//窗口的最小化图标为缺省图标 wndclass.hCursor=LoadCursor(NULL,IDC_ARROW); // 窗口采用箭头光标 wndclass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH)); //窗口背景为白色 wndclass.lpszMenuName=NULL; //窗口无菜单 wndclass.lpszClassName=lpszClassName; //窗口类名为“窗口” //////////////// 以下是窗口类的注册 Windows系统本身提供部分预定义的窗口类,程序员也可以自定义窗口类// 窗口类必须先注册 后使用 if(!RegisterClass(&wndclass)) //如果注册失败 发出警告 {MessageBeep(0); return FALSE;} ///////////////创建窗口 创建一个窗口的实例由函数CreateWindow()实现 hwnd=CreateWindow( lpszClassName, //窗口类名 lpszTitle, //窗口标题名 WS_OVERLAPPEDWINDOW, //窗口的风格 CW_USEDEFAULT, CW_USEDEFAULT, //窗口左上角坐标值为缺省值 CW_USEDEFAULT, CW_USEDEFAULT, //窗口的高和宽为缺省值 NULL, //此窗口无父窗口 NULL, //此窗口无子菜单 hInstance, //创建此窗口的应用程序的当前句柄 NULL //不使用该值 ); /////////////显示窗口 ShowWindow(hwnd,nCmdShow); //绘制用户区 UpdateWindow(hwnd);
参数介绍:
BOOL RegisterWindowClass() { WNDCLASS wndcls; HINSTANCE hInst = AfxGetInstanceHandle(); if (!(::GetClassInfo(hInst, BITMAPVIEWER_CLASSNAME, &wndcls))) { // otherwise we need to register a new class wndcls.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW; wndcls.lpfnWndProc = ::DefWindowProc; wndcls.cbClsExtra = wndcls.cbWndExtra = 0; wndcls.hInstance = hInst; wndcls.hIcon = NULL; wndcls.hCursor = AfxGetApp()->LoadStandardCursor(IDC_ARROW); wndcls.hbrBackground = (HBRUSH) (COLOR_3DFACE + 1); wndcls.lpszMenuName = NULL; wndcls.lpszClassName = BITMAPVIEWER_CLASSNAME; if (!AfxRegisterClass(&wndcls)) { AfxThrowResourceException(); return FALSE; } } return TRUE; }
参考:http://www.cnblogs.com/Clingingboy/archive/2011/08/31/2161461.html