zoukankan      html  css  js  c++  java
  • windows程序设计 创建一个新的窗口

    #include <windows.h>
    
    LRESULT CALLBACK myProc(HWND, UINT, WPARAM, LPARAM);
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){
    
    	static TCHAR szClassName[] = TEXT("cabbage");
    
    	MSG msg;//消息结构
    	HWND hwnd;//窗口句柄
    	WNDCLASS wc;//窗口类别结构
    
    	wc.cbClsExtra = 0;
    	wc.cbWndExtra = 0;
    	wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//窗口背景颜色
    	wc.hCursor = LoadCursor(NULL, IDC_ARROW);//光标
    	wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);//小图标
    	wc.hInstance = hInstance;//实例句柄
    	wc.lpfnWndProc = myProc;//回调函数
    	wc.lpszClassName = szClassName;//类名
    	wc.lpszMenuName = NULL;//菜单
    	wc.style = CS_VREDRAW | CS_HREDRAW;
    
    	//注册窗口 为程序窗口注册窗口类别
    	if(!RegisterClass(&wc)){
    		MessageBox(NULL, TEXT("注册窗口失败"), szClassName, MB_ICONERROR);
    		return 0;
    	}
    
    	//创建窗口 根据窗口类别建立一个窗口
    	hwnd = CreateWindow(szClassName,//窗口类名
    		TEXT("hello insert"),//窗口标题
    		WS_OVERLAPPEDWINDOW,//窗口显示样式
    		CW_USEDEFAULT, CW_USEDEFAULT,//窗口在显示器上显示离左上角的距离,横轴为x,纵轴为y
    		CW_USEDEFAULT, CW_USEDEFAULT,//宽口宽度和高度
    		NULL, NULL, hInstance, NULL);//
    
    	//显示窗口 在屏幕上显示窗口
    	ShowWindow(hwnd, nCmdShow);
    	//刷新窗口 只是窗口自我更新
    	UpdateWindow(hwnd);
    
    	//消息循环
    	while(GetMessage(&msg, NULL, 0, 0)){//获取消息 从消息队列中取得消息
    		TranslateMessage(&msg);//翻译消息 转译某些键盘消息
    		DispatchMessage(&msg);//分发消息 将消息发送给窗口消息处理程序
    	}
    
    	return 0;
    }
    
    LRESULT CALLBACK myProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){
    
    	PAINTSTRUCT ps;//绘图结构
    	HDC hdc;//设备内容句柄
    	RECT rect;//矩形结构
    
    	switch(msg){
    	case WM_PAINT:
    		hdc = BeginPaint(hwnd, &ps);//开始绘制窗口
    
    		GetClientRect(hwnd, &rect);
    		DrawText(hdc, TEXT("你好,爱白菜的小昆虫!"), -1, &rect,
    			DT_SINGLELINE | DT_CENTER | DT_VCENTER);
    		
    		EndPaint(hwnd, &ps);//结束绘制窗口
    		break;
    	case WM_DESTROY://销毁窗口消息
    		PostQuitMessage(0);//抛出退出程序消息
    		break;
    	}
    
    	//返回执行内定的消息处理
    	return DefWindowProc(hwnd, msg, wParam, lParam);
    }
    

      

    运行结果

  • 相关阅读:
    Max_connect_errors – MySQL性能参数详解
    python qt
    Topo图
    ECSHOP报错误Deprecated: preg_replace(): The /e modifier is depr
    Socat
    Tomcat多次部署
    Android进程守护
    mysql将字符转换成数字
    Oracle sql查询
    ZOJ 题目2859 Matrix Searching(二维RMQ)
  • 原文地址:https://www.cnblogs.com/xuqiulin/p/9997019.html
Copyright © 2011-2022 走看看