Genesis 开发日记 [ 1 ] - 初始化窗口
项目名:Genesis
开发人员:WoodYanmu
开发版本:2.0
- 头文件
#include <Windows.h> #include <fstream> #include <iostream> using namespace std;
- 声明
//函数声明区 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //全局常量区 #define WIDTH 750 #define HEIGHT 650 //全局变量区
- 主函数
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { static TCHAR MainClassName[] = TEXT("WOOD"); WNDCLASS wndclass; HWND hwnd; MSG msg; wndclass.style = CS_HREDRAW | CS_VREDRAW; //窗口样式 wndclass.lpszClassName = MainClassName; //窗口类名 wndclass.lpszMenuName = NULL; //窗口菜单:无 wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //窗口背景颜色 wndclass.lpfnWndProc = WndProc; //窗口处理函数 wndclass.cbWndExtra = 0; //窗口实例扩展:无 wndclass.cbClsExtra = 0; //窗口类扩展:无 wndclass.hInstance = hInstance; //窗口实例句柄 wndclass.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_MainIco)); //窗口最小化图标:使用缺省图标 wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); //窗口采用箭头光标 if (!RegisterClass(&wndclass)) { //注册窗口类, 如果注册失败弹出错误提示 MessageBox(NULL, TEXT("窗口注册失败!"), TEXT("错误"), MB_OK | MB_ICONERROR); return 0; } hwnd = CreateWindow( //创建窗口 MainClassName, //窗口类名 TEXT("Genesis"), //窗口标题 WS_OVERLAPPEDWINDOW, //窗口的风格 CW_USEDEFAULT, //窗口初始显示位置x:使用缺省值 CW_USEDEFAULT, //窗口初始显示位置y:使用缺省值 WIDTH, //窗口的宽度:使用缺省值 HEIGHT, //窗口的高度:使用缺省值 NULL, //父窗口:无 NULL, //子菜单:无 hInstance, //该窗口应用程序的实例句柄 NULL // ); ShowWindow(hwnd, iCmdShow); //显示窗口 UpdateWindow(hwnd); //更新窗口 while (GetMessage(&msg, NULL, 0, 0)) //从消息队列中获取消息 { TranslateMessage(&msg); //将虚拟键消息转换为字符消息 DispatchMessage(&msg); //分发到回调函数(过程函数) } return msg.wParam; } LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) { HDC hdc; //设备环境句柄 PAINTSTRUCT ps; //绘制结构 RECT rect; //矩形结构 TCHAR szBuffer[128]; static int x, y; static HWND hwndInput; char input[1024]; switch (message) { case WM_CREATE: break; case WM_TIMER: break; case WM_PAINT: hdc = BeginPaint(hwnd, &ps); EndPaint(hwnd, &ps); break; case WM_LBUTTONDOWN: //处理鼠标左键单击被按下时产生的消息 break; case WM_DESTROY: PostQuitMessage(0); break; } return DefWindowProc(hwnd, message, wParam, lParam); }