#include <Windows.h>

 //处理消息的回调函数
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hpreinstance, PSTR szcmdline, int icmdshow)
{
//设置窗口的名字
static TCHAR szappname[] = TEXT("mywindow"); //窗口类
WNDCLASS wndclass;
//风格
wndclass.style = CS_HREDRAW | CS_VREDRAW;
wndclass.lpszClassName = szappname;//设置名字
wndclass.lpszMenuName = NULL;
wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);//设置背景
wndclass.lpfnWndProc = WndProc;//设置回调函数处理窗口
wndclass.cbClsExtra = wndclass.cbWndExtra = ;//拓展
wndclass.hInstance = hinstance;//窗口句柄
wndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION);//载入图标
wndclass.hCursor = LoadCursor(NULL, IDC_ARROW);//载入鼠标风格 //通过名字,注册窗口
if (!RegisterClass(&wndclass))
{
MessageBoxA(, "窗口注册失败", "提示", );
return ;
} //通过名字,创建窗口
HWND hwnd = CreateWindow(szappname,//窗口名字
TEXT("窗口"),//窗口标题
WS_OVERLAPPEDWINDOW,//窗口风格
CW_USEDEFAULT,//默认显示位置x
CW_USEDEFAULT,//默认显示位置y
CW_USEDEFAULT,//默认宽度
CW_USEDEFAULT,//默认高度
NULL,//子窗口
NULL,//子菜单
hinstance,//窗口句柄
NULL); ShowWindow(hwnd, SW_SHOW);
UpdateWindow(hwnd);//显示并更新
MSG msg;//消息
//消息循环(GetMessage 创建事件 TranslateMessage DispatchMessage响应事件)
while (GetMessage(&msg,NULL,,))
{
TranslateMessage(&msg);
//调用回调函数
DispatchMessage(&msg);
} return msg.wParam;
} LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam)
{
//设备环境
HDC hdc;
PAINTSTRUCT ps;
RECT rect;
switch (message)
{
case WM_LBUTTONDOWN:
MessageBoxA(, "按下鼠标左键", "提示", );
break;
case WM_RBUTTONDOWN:
MessageBoxA(, "按下鼠标左键", "提示", );
break;
case WM_CLOSE:
if (MessageBoxA(, "是否关闭窗口", "提示", ) == )
{
//关闭窗口,发送WM_DESTROY消息
DestroyWindow(hwnd);
}
else
{
return ;
}
break;
case WM_DESTROY:
MessageBoxA(, "已成功关闭", "提示", );
exit();
break;
default:
break;
}
return DefWindowProc(hwnd, message, wparam, lparam);
}

119.WIN32窗口原理的更多相关文章

  1. 第一个手写Win32窗口程序

    第一个手写Win32窗口程序 一 Windows编程基础 1 Win32应用程序的基本类型 1.1 控制台程序 不需要完善的Windows窗口,可以使用DOS窗口 的方式显示. 1.2 Win32窗口 ...

  2. TCP面试题之滑动窗口原理

    TCP 滑动窗口 作用: 1. 提供TCP可靠性:对发送的数据进行确认 2. 流量控制:窗口大小随链路变化 一.TCP窗口机制 TCP中窗口大小是指tcp协议一次传输多少个数据.因为TCP是一个面向连 ...

  3. WIN32窗口程序

    // Win32.cpp : 定义应用程序的入口点. // #include "stdafx.h" #include "Win32.h" void TRACE( ...

  4. Win32窗口消息机制 x Android消息机制 x 异步执行

    如果你开发过Win32窗口程序,那么当你看到android代码到处都有的mHandler.sendEmptyMessage和 private final Handler mHandler = new ...

  5. 如何在Console下面生成一个WIN32窗口

    一个小挑战? VS2017里面,新建一个控制台工程,输入名字(你不需要也成,有默认的),得到一个控制台工程. 好了,生成的代码,如下: // Win32InConsole.cpp : This fil ...

  6. Win32窗口框架

    Win32窗口框架 WindowClass 单例,负责窗口初始化注册和取消注册: 负责提供静态方法: 放在Window类内部,方便初始化时,wndProc(HandleMsgSetup)的赋值: cl ...

  7. Win32 - 窗口

    Win32 - 窗口 目录 Win32 - 窗口 前言 流程图 创建项目 VS MinGW Win32API字符串 Unicode 和 ANSI 函数 TCHAR WinMain:Win32 Appl ...

  8. 解决WIN32窗口不响应WM_LBUTTONDBLCLK消息

    原文链接: http://www.cnblogs.com/xukaixiang/archive/2012/05/27/2520059.html 今天在做一个软件时,发现win32创建的窗体不能响应WM ...

  9. 模态窗口原理及注意事项--http://www.alisdn.com/wordpress/?p=53

    前言 在开发Windows引用程序的时候,在一些需要用户确认,或者提示用户注意的场合,经常使用模态对话框,或者叫模态窗口.在绝大多数情况下,模态窗口给开发人员带来了极大的便利,并且在某些应用上有不可替 ...

随机推荐

  1. express随笔

    Express 是node 第三方框架,框架的意义就在于能大大简化程序地开发.看一下Express是怎么简化node程序开发的. 1,用Express写一个hello world 程序,我们来体验一下 ...

  2. https soap链接示例

    1.先安装soap扩展sudo yum install php-soap 2.安装openssL 3.function  issure($sn){//通过soap链接接口  进行确认是否是正确的sn码 ...

  3. CCF模拟 无线网络

    无线网络 时间限制: 1.0s 内存限制: 256.0MB   问题描述 目前在一个很大的平面房间里有 n 个无线路由器,每个无线路由器都固定在某个点上.任何两个无线路由器只要距离不超过 r 就能互相 ...

  4. nio实现文件读取写入数据库或文件

    1.nio实现读取大文件,之后分批读取写入数据库 2.nio实现读取大文件,之后分批写入指定文件 package com.ally; import java.io.File; import java. ...

  5. SQL Server 函数的使用 Function

    create table student ( id varchar2(5) primary key, name varchar2(20) not null, sex char(2) check(sex ...

  6. hdu4253 Two Famous Companies --- 二分+MST

    给n个点.m条边的图.每条边要么属于a公司,要么属于b公司.要求一颗最小生成树,条件是当中属于a公司的边数为k. 这题做法非常巧妙. 要求最小生成树,但有一定限制,搜索.贪心显然都不正确. 要是能找到 ...

  7. 运行maven项目出现的报错

    java问题:严重: Error configuring application listener of class org.springframework.web.context.Cont 解决方案 ...

  8. Torch 的安装与基本用法

    本文安装仅限 ubuntu 系统.官方文档见:Getting started with Torch. 0. 简介 Torch 使用轻量级脚本语言 Lua 及其 C/CUDA 扩展模块实现,底层数值计算 ...

  9. 73.node.js开发错误——TypeError: Cannot set property 'XXX' of undefined

    转自:https://blog.csdn.net/fd214333890/article/details/53467429

  10. Can't access RabbitMQ web management interface after fresh install

    http://stackoverflow.com/questions/22850546/cant-access-rabbitmq-web-management-interface-after-fres ...