简单的windows窗口创建实例
#include<windows.h>
#include<tchar.h>
LRESULT CALLBACK WndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam) //消息处理函数
{
switch(umsg)
{
case WM_CLOSE:
{ ::DestroyWindow(hwnd); }
break;
case WM_DESTROY:
{ :: PostQuitMessage(0); }
return 0;
}
return DefWindowProc(hwnd,umsg,wParam,lParam); //返回默认的消息处理函数
}
int WINAPI _tWinMain(IN HINSTANCE hInstance ,IN HINSTANCE hPrevInstance ,IN LPTSTR szCmdLine ,IN int iCmdShow )
{
static TCHAR pszClassName[]=_T("IT Wnd");
//创建窗口 WNDCLASS wxce;
wxce.style = CS_HREDRAW | CS_VREDRAW ; //窗口的风格 wxce.lpfnWndProc =WndProc; //消息处理,需要消息处理函数WndProc的名字 wxce.cbClsExtra = 0 ; wxce.cbWndExtra = 0; wxce.hInstance = hInstance; //窗口的实例句柄
wxce.hIcon = (HICON)::LoadIcon(NULL,IDI_APPLICATION); //窗口的的光标
//wxce.hIconSn= (HICON)::LoadIcon(NULL,IDI_APPLICATION);
wxce.hCursor = (HCURSOR)::LoadCursor(NULL,IDC_ARROW); //鼠标指针 wxce.hbrBackground = (HBRUSH)::GetStockObject(WHITE_BRUSH); //背景颜色 wxce.lpszMenuName = NULL; //菜单句柄,本例中没有用到菜单 wxce.lpszClassName = pszClassName; //窗口名称
//注册窗口 if(!RegisterClass(&wxce)) { ::MessageBox(NULL,_T("注册窗口失败"),pszClassName,0); return FALSE; }
//创建窗口
HWND hwnd = ::CreateWindow(pszClassName, //窗口类名
_T("IT学吧"), //窗口标题
WS_VISIBLE|WS_OVERLAPPEDWINDOW, //窗口风格,或称窗口格式
CW_USEDEFAULT, //初始x坐标,这里的初始坐标都设定为默认的
CW_USEDEFAULT, //初始Y坐标
CW_USEDEFAULT, //初始X方向尺寸,这里也设为默认的
CW_USEDEFAULT, //初始Y方向尺寸
NULL, //父窗口句柄
NULL, //窗口菜单句柄
hInstance, //程序实例句柄 NULL ); //创建参数
if(NULL==hwnd)
{
::MessageBox(NULL,_T("创建窗口失败"),pszClassName,0);
return FALSE;
}
::ShowWindow(hwnd,iCmdShow); //显示窗口
::UpdateWindow(hwnd); //更新窗口
MSG msg; while (::GetMessage(&msg,NULL,NULL,NULL))
{ ::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
return true;
}
简单的windows窗口创建实例的更多相关文章
- java最简单的知识之创建一个简单的windows窗口,利用Frame类
作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 微博:http://weibo.com/mcxiaobing 首先给大家看一下 ...
- 深入解析Windows窗口创建和消息分发(三个核心问题:怎么将不同的窗口过程勾到一起,将不同的hwnd消息分发给对应的CWnd类去处理,CWnd如何简单有效的去处理消息,由浅入深,非常清楚) good
笔记:争取不用看下面的内容,只看自己的笔记,就能记住这个流程,就算明白了: _tWinMain-->AfxWinMain,它调用四个函数: -->AfxWinInit用于做一些框架的初始化 ...
- WIN32 API ------ 最简单的Windows窗口封装类
1 开发语言抉择 1.1 关于开发Win32 程序的语言选择 C还是C++ 在决定抛弃MFC,而使用纯Win32 API 开发Window桌面程序之后,还存在一个语言的选择,这就是是否使用C++.C+ ...
- Windows窗口创建的具体步骤
/*实现窗口创建的六步骤:第一步:创建入口函数WinMain第二步:注册窗口类第三部:实现回调函数的功能第四步:显示窗口第五步:更新窗口第六步:消息循环*/ #include "stdafx ...
- C#的简单的Windows Service 创建与安装
注意事项: 1. 添加调试代码 入口: 服务: 2. 再服务界面右键添加安装程序 3. 修改安装程序属性(Account) 4. 修改服务安装属性(DelayedAutoStart,ServiceNa ...
- Windows窗口的创建
Windows窗口创建的基本代码: #include <Windows.h> LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); i ...
- 深入解析Windows窗体创建和消息分发
Windows GUI採用基于事件驱动的编程模型,其实差点儿全部的界面库都是这样做的.在纯粹的Window32 SDK编程时代.人们还能够搞懂整个Windows窗口创建和消息的流通过程.可是在如今各种 ...
- Git - git bash 在 windows 下创建软连接
1. 概述 使用 git bash 在 windows 下创建软连接 或者叫 快捷方式 感谢 Tony 老师的帮助 Tony 的技术笔记 Windows 使用 ln -s 创建软链接 2. 问题 需求 ...
- win32 api Windows窗口的创建
windows窗口的创建有以下几个步骤: 1.创建注册窗口类 2.创建窗口句柄 3.显示更新窗口 4.消息循环 1.创建注册窗口类 所谓创建窗口类就是定义一个WNDCLASS类对象,并将该对象进行初始 ...
随机推荐
- python使用cx_Oracle在Linux和Windows下的一点差异
1. 主要是线程方面的差异. Windows下,把cx_Oracle.connect(connectedId)得到的handle传给定时器线程,主线程和和定时器可以用同一个handle. 但Linux ...
- 转:django模板标签{% for %}的使用(含forloop用法)
django模板标签{% for %}的使用(含forloop用法) {% %}虽然这个是写在html中,但是这里边写的是服务端代码 在django模板标签中,{% for %} 标签用于迭代序列 ...
- Linux基础(三)Shell test 命令
Shell test 命令 Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值.字符和文件三个方面的测试. 数值测试 参数 说明 -eq 等于则为真 -ne 不等于则为真 -gt ...
- linux 系统 cp: omitting directory 问题解决
在linux系统中复制文件夹时提示如下: cp: omitting directory `foldera/' 其中foldera是我要复制的文件夹名,出现该警告的原因是因为foldera目录下还存在目 ...
- Container(容器)与 Injector(注入)
Container(容器): History: containerd于2014年出生于Docker,最初是Docker引擎的低层运行时管理器.继2017年3月被CNCF接受之后,containerd已 ...
- Java包装
public class Test2 { public static void main(String[] args) { /*String str = "..............&qu ...
- 超简单系列:ubuntu 13.04 安装 apache2.2+mod_wsgi+Django
1,Ubuntu更新系统 sudo apt-get update sudo apt-get upgrade 2,安装apache,mod_wsgi,Django sudo apt-get instal ...
- Linux 压缩解压缩命令详解
tar -c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件 这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个.下面的 ...
- c# 定义委托和使用委托(事件的使用)
使用委托时要先实例化,和类一样,使用new关键字产生委托的新实例,然后将一个或者多个与委托签名匹配的方法与委托实例关联.随后调用委托时,就会调用所有与委托实例关联的方法. 与委托关联可以是任何类或者结 ...
- linux下mysql 8.0忘记密码后重置密码
1://免密码登陆 找到mysql配置文件:my.cnf, 在[mysqld]模块添加:skip-grant-tables 保存退出: 2://使配置生效 重启mysql服务: service ...