119.WIN32窗口原理
#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窗口原理的更多相关文章
- 第一个手写Win32窗口程序
第一个手写Win32窗口程序 一 Windows编程基础 1 Win32应用程序的基本类型 1.1 控制台程序 不需要完善的Windows窗口,可以使用DOS窗口 的方式显示. 1.2 Win32窗口 ...
- TCP面试题之滑动窗口原理
TCP 滑动窗口 作用: 1. 提供TCP可靠性:对发送的数据进行确认 2. 流量控制:窗口大小随链路变化 一.TCP窗口机制 TCP中窗口大小是指tcp协议一次传输多少个数据.因为TCP是一个面向连 ...
- WIN32窗口程序
// Win32.cpp : 定义应用程序的入口点. // #include "stdafx.h" #include "Win32.h" void TRACE( ...
- Win32窗口消息机制 x Android消息机制 x 异步执行
如果你开发过Win32窗口程序,那么当你看到android代码到处都有的mHandler.sendEmptyMessage和 private final Handler mHandler = new ...
- 如何在Console下面生成一个WIN32窗口
一个小挑战? VS2017里面,新建一个控制台工程,输入名字(你不需要也成,有默认的),得到一个控制台工程. 好了,生成的代码,如下: // Win32InConsole.cpp : This fil ...
- Win32窗口框架
Win32窗口框架 WindowClass 单例,负责窗口初始化注册和取消注册: 负责提供静态方法: 放在Window类内部,方便初始化时,wndProc(HandleMsgSetup)的赋值: cl ...
- Win32 - 窗口
Win32 - 窗口 目录 Win32 - 窗口 前言 流程图 创建项目 VS MinGW Win32API字符串 Unicode 和 ANSI 函数 TCHAR WinMain:Win32 Appl ...
- 解决WIN32窗口不响应WM_LBUTTONDBLCLK消息
原文链接: http://www.cnblogs.com/xukaixiang/archive/2012/05/27/2520059.html 今天在做一个软件时,发现win32创建的窗体不能响应WM ...
- 模态窗口原理及注意事项--http://www.alisdn.com/wordpress/?p=53
前言 在开发Windows引用程序的时候,在一些需要用户确认,或者提示用户注意的场合,经常使用模态对话框,或者叫模态窗口.在绝大多数情况下,模态窗口给开发人员带来了极大的便利,并且在某些应用上有不可替 ...
随机推荐
- UVALive - 6268 Cycling 贪心
UVALive - 6268 Cycling 题意:从一端走到另一端,有T个红绿灯,告诉你红绿灯的持续时间,求最短的到达终点的时间.x 思路:
- 好吧,左小波出山了——ie8兼容indexOf问题
我,还是一个不懂世事的毛头小子,第一次写博.万事开头难,没事咱慢慢来.咳,练文笔吗.我觉得写东西最锻炼逻辑思维,我是一个不善于表达的人,可能是程序员的通病,但你看看人家王小波,八九十年代的作家兼职程序 ...
- Reference Counting GC (Part two :Partial Mark & Sweep)
目录 部分标记清除算法 前提 dec_ref_cnt()函数 new_obj()函数 scan_hatch_queue()函数 paint_gray()函数 scan_gray()函数 collect ...
- php自定义加密和解密
<?php function _authcode($string, $operation = 'DECODE', $expiry = 0) { $key = 'c5s1t6o'; $cke ...
- mysql查一张表有哪些索引
可以用这个命令: show index from table_name; 得到输出: +------------------+------------+------------+----------- ...
- 搭建个人博客 方式2 使用jekyll
孙广东 2016.3.12 环境安装:1.通过 RailsInstaller 来安装 Ruby https://www.ruby-lang.org/zh_cn/documentation/inst ...
- Apache Spark 1.6公布(新特性介绍)
Apache Spark 1.6公布 CSDN大数据 | 2016-01-06 17:34 今天我们很高兴可以公布Apache Spark 1.6,通过该版本号,Spark在社区开发中达到一个重要的里 ...
- 机器学习Python实现AdaBoost
adaboost是boosting方法多个版本号中最流行的一个版本号,它是通过构建多个弱分类器.通过各个分类器的结果加权之后得到分类结果的.这里构建多个分类器的过程也是有讲究的,通过关注之前构建的分类 ...
- vim 技巧之用宏命令批量处理文件
今天遇到了一种情况,就是我需要同时修改34个文件中的某些字符串的内容,如果一个个打开需改的话,那也太麻烦了.后来就想着能不能通过vim的宏命令来修改呢?现在就总结下关于宏在文件列表中的应用1.首先,我 ...
- POJ 1989 贪心
题意: 思路: 从前到后扫一遍 如果k个数都出现过了 ans++ 从当前接着判断 最后答案就是ans+1 //By SiriusRen #include <cstdio> using na ...