Windows 程序设计

    技术2024-07-16  56

    创建窗口类和窗口

    int WINAPI WinMain( HINSTANCE hInstance , HINSTANCE hPrevIstance , PSTR szCmdLine , int iCmdShow ) { static TCHAR szAppName[] = TEXT( "WinProgram" ); HWND hwnd; MSG msg; WNDCLASS wndclass; wndclass.style = 0; //CS_HREDRAW | CS_VREDRAW; 类风格 wndclass.lpfnWndProc = WndProc; //窗口过程 wndclass.cbClsExtra = 0; //为类结构预留空间 wndclass.cbWndExtra = 0; //为窗口结构预留空间 wndclass.hInstance = hInstance; //实例句柄 wndclass.hIcon = LoadIcon( NULL , IDI_APPLICATION ); //NULL 为自定义图标 ID代表图标,预先定义的标识符在WINUSER.H中定义 wndclass.hCursor = LoadCursor( NULL , IDC_ARROW ); //鼠标图标,当鼠标在这个类创建的窗口的客户区域上出现时,它将变成一个小箭头 wndclass.hbrBackground = ( HBRUSH )GetStockObject( WHITE_BRUSH ); //hbr代表刷子句柄,此句意思背景颜色为白色 wndclass.lpszMenuName = NULL; //窗口类菜单 wndclass.lpszClassName = szAppName; //类名,与程序名相同 if( !RegisterClass( &wndclass ) ) //注册窗口类 { MessageBeep( 0 ); return false; } hwnd = CreateWindow //创建窗口 ( szAppName , //窗口类名 TEXT( "Title" ) , //标题 WS_CAPTION | WS_SYSMENU , //WS_OVERLAPPEDWINDOW为标准风格 100 , //窗口左上角相对于屏幕左上角的初始位置 x 100 , // y WNDHIGH , //width WNDWIDE , //high NULL , //父窗口句柄 NULL , //窗口菜单句柄 hInstance , //实例句柄 NULL //创建参数指针 ); ShowWindow( hwnd , iCmdShow ); //显示窗口 UpdateWindow( hwnd ); //绘制客户区 while( GetMessage( &msg , NULL , 0 , 0 ) ) //消息循环,从消息队列中取出一个消息 { //msg等于WM_QUIT时退出 TranslateMessage( &msg ); //进行键盘转换 DispatchMessage( &msg ); //将消息发送给窗口过程 } return msg.wParam; }

    最新回复(0)