【Chapter 1】入门
2013-11-09 09:26
351 查看
刚写了一半的blog
结果不小心backspace的时候浏览器后退了
伤心到爆。
动力大减QAQ
但是日子还是要过
Blog还是要写TAT[啜泣]
本该上学期就应该开始学的东西被我拖拖拉拉到现在才开始学
求一个黄色or蓝色类型人监督
红色类型人容易自我放弃TAT
以前用c++/c写出来的总是小黑窗
毫无美感可言
现在开始学习怎么写出图形界面的程序
[ 话说你写这么多序是没有人会看的! ]
====================================================================
一、一个简单的窗口函数至少包含两个函数
1)
WinMain函数
2)
窗口过程函数
1)
WinMain函数
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTRlpCmdLine,
intnCmdShow
)
//在 Visual Studio 2005
下则为int APIENTRY WinMain...
//在 Visual Studio 2012
下则为int CALLBACK WinMain...
(1)参数:
hInstance:应用程序当前实例的句柄。
hPrevlnstance:应用程序的先前实例的句柄。
对于同一个程序打开两次,出现两个窗口第一次打开的窗口就是先前实例的窗口。对于一个32位程序,该参数总为NULL。
如果需要检测另外一个实例是否已经存在,则使用CreateMutex函数创建一个独一无二的名字。即使互斥名已经存在,CreateMutex函数也是成功的,但是GetLastError函数将返回
ERROR_ALREADY_EXISTS,这就表明应用程序有另外一个实例存在,因为它首先创建了互斥名。
lpCmdLine:指向应用程序命令行的字符串的指针,不包括执行文件名。获得整个命令行,参看GetCommandLine。
第三个参数lpCmdLine是一个以空终止的字符串,指定传递给应用程序的命令行参数。
例如:在D盘下有一个sunxin.txt文件,当我们用鼠标双击这个文件时将启动记事本程序(notepad.exe),此时系统会将D:\sunxin.txt作为命令行参数传递给记事本程序的WinMain函数,记事本程序在得到这个文件的全路径名后,就在窗口中显示该文件的内容。要在VC++开发环境中向应用程序传递参数,可以单击菜单【Project】→【Settings】,选择“Debug”选项卡,在“Program
arguments”编辑框中输入你想传递给应用程序的参数。
nCmdShow:指明窗口如何显示。[详见附录1]
(2)WINAP的含义
# define WINAPI__stdcall;
表明参数都是从右向左通过堆栈传递的
(3)WinMain函数主要做了四件事
-注册窗口类
-创建窗口
-显示窗口
-消息循环
2)
窗口过程函数
[程序的大部分编码工作]
LRESULT CALL
4000
BACK
WindowProcedure(HWND hwnd, UINT message, WPARAMwParam, LPARAM lParam);
(1)LRESULT是一个数据类型,
MSDN: 32-bit value returned from a window procedure or callback function
指的是从窗口程序或者回调函数返回的32位值
(2)CALLBACK的含义:
#define CALLBACK__stdcall;
(3)四个参数的作用:
hwnd:窗口句柄
message:消息的类型
wParam和lParam:消息的附加信息
(4)窗口过程的作用:就是对各种用户动作(或者系统事件)进行处理。
(5)窗口过程的写法:通常是用一个switch语句判断message参数,对不同类型的消息进行不同的处理。
接下来会用实例来说明啦~
早起好精神好开心yeah~
========================================================
附录1:
nCmdShow:指明窗口如何显示。该参数可以是下列值之一:
SW_HIDE:隐藏窗口并且激活另外一个窗口。
SW_MINIMIZE:最小化指定的窗口,并且激活在系统表中的顶层窗口。
SW_RESTORE:激活并显示窗口。如果窗口已经最小化或最大化,系统将以恢复到原来的尺寸和位置显示窗口(与SW_SHOWNORMAL相同)。
SW_SHOW:激活一个窗口并以原来的尺寸和位置显示窗口。
SW_SHOWMAXIMIZED:激活窗口并且将其最大化。
SW_SHOWMINIMIZED:激活窗口并将其最小化(以图标显示)。
SW_SHOWMINNOACTIVE:将一个窗口显示为图标。激活窗口维持活动状态。
SW_SHOWNA:以窗口的当前状态显示窗口。激活窗口保持活动状态。
SW_SHOWNOACTIVATE:以窗口的最近一次的尺寸和位置显示窗口。激活窗口维持激活状态。
SW_SHOWNORMAL:激活并显示窗口。如果窗口最大化或最小化,系统将其恢复到原来的尺寸和位置(与SW_RESTORE相同)。
结果不小心backspace的时候浏览器后退了
伤心到爆。
动力大减QAQ
但是日子还是要过
Blog还是要写TAT[啜泣]
本该上学期就应该开始学的东西被我拖拖拉拉到现在才开始学
求一个黄色or蓝色类型人监督
红色类型人容易自我放弃TAT
以前用c++/c写出来的总是小黑窗
毫无美感可言
现在开始学习怎么写出图形界面的程序
[ 话说你写这么多序是没有人会看的! ]
====================================================================
【Windows基础与GDI游戏】
一、一个简单的窗口函数至少包含两个函数
1)
WinMain函数
2)
窗口过程函数
1)
WinMain函数
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTRlpCmdLine,
intnCmdShow
)
//在 Visual Studio 2005
下则为int APIENTRY WinMain...
//在 Visual Studio 2012
下则为int CALLBACK WinMain...
(1)参数:
hInstance:应用程序当前实例的句柄。
hPrevlnstance:应用程序的先前实例的句柄。
对于同一个程序打开两次,出现两个窗口第一次打开的窗口就是先前实例的窗口。对于一个32位程序,该参数总为NULL。
如果需要检测另外一个实例是否已经存在,则使用CreateMutex函数创建一个独一无二的名字。即使互斥名已经存在,CreateMutex函数也是成功的,但是GetLastError函数将返回
ERROR_ALREADY_EXISTS,这就表明应用程序有另外一个实例存在,因为它首先创建了互斥名。
lpCmdLine:指向应用程序命令行的字符串的指针,不包括执行文件名。获得整个命令行,参看GetCommandLine。
第三个参数lpCmdLine是一个以空终止的字符串,指定传递给应用程序的命令行参数。
例如:在D盘下有一个sunxin.txt文件,当我们用鼠标双击这个文件时将启动记事本程序(notepad.exe),此时系统会将D:\sunxin.txt作为命令行参数传递给记事本程序的WinMain函数,记事本程序在得到这个文件的全路径名后,就在窗口中显示该文件的内容。要在VC++开发环境中向应用程序传递参数,可以单击菜单【Project】→【Settings】,选择“Debug”选项卡,在“Program
arguments”编辑框中输入你想传递给应用程序的参数。
nCmdShow:指明窗口如何显示。[详见附录1]
(2)WINAP的含义
# define WINAPI__stdcall;
表明参数都是从右向左通过堆栈传递的
(3)WinMain函数主要做了四件事
-注册窗口类
-创建窗口
-显示窗口
-消息循环
2)
窗口过程函数
[程序的大部分编码工作]
LRESULT CALL
4000
BACK
WindowProcedure(HWND hwnd, UINT message, WPARAMwParam, LPARAM lParam);
(1)LRESULT是一个数据类型,
MSDN: 32-bit value returned from a window procedure or callback function
指的是从窗口程序或者回调函数返回的32位值
(2)CALLBACK的含义:
#define CALLBACK__stdcall;
(3)四个参数的作用:
hwnd:窗口句柄
message:消息的类型
wParam和lParam:消息的附加信息
(4)窗口过程的作用:就是对各种用户动作(或者系统事件)进行处理。
(5)窗口过程的写法:通常是用一个switch语句判断message参数,对不同类型的消息进行不同的处理。
接下来会用实例来说明啦~
早起好精神好开心yeah~
========================================================
附录1:
nCmdShow:指明窗口如何显示。该参数可以是下列值之一:
SW_HIDE:隐藏窗口并且激活另外一个窗口。
SW_MINIMIZE:最小化指定的窗口,并且激活在系统表中的顶层窗口。
SW_RESTORE:激活并显示窗口。如果窗口已经最小化或最大化,系统将以恢复到原来的尺寸和位置显示窗口(与SW_SHOWNORMAL相同)。
SW_SHOW:激活一个窗口并以原来的尺寸和位置显示窗口。
SW_SHOWMAXIMIZED:激活窗口并且将其最大化。
SW_SHOWMINIMIZED:激活窗口并将其最小化(以图标显示)。
SW_SHOWMINNOACTIVE:将一个窗口显示为图标。激活窗口维持活动状态。
SW_SHOWNA:以窗口的当前状态显示窗口。激活窗口保持活动状态。
SW_SHOWNOACTIVATE:以窗口的最近一次的尺寸和位置显示窗口。激活窗口维持激活状态。
SW_SHOWNORMAL:激活并显示窗口。如果窗口最大化或最小化,系统将其恢复到原来的尺寸和位置(与SW_RESTORE相同)。
相关文章推荐
- Part I. 设计人员指南 Designer's Guide -- Chapter 1. 快速入门 Quick Start -- (一)
- 算法竞赛入门经典chapter4:本章小结
- chapter 1: windows驱动入门
- Python入门与实践 Chapter 4 动手试一试
- Python入门与实践 Chapter 6 动手试一试
- Netty 快速入门系列 - Chapter 7 数据包协议【第十八讲】解决方案-经典协议包结构
- 《SQL Server 2005 编程入门经典》 Chapter 1
- Python入门——Chapter 2 Python原料:数字、字符串和变量
- Chapter 0.SymmetricDS快速入门指南( Quick Start Guide)
- Netty 快速入门系列 - Chapter 1 传统OIO与NIO - 传统OIO 【第一讲】
- Netty 快速入门系列 - Chapter 5 Netty之序列化【第十二讲】 Java Serializable
- Chapter 0.a Unity入门案例上
- Netty 快速入门系列 - Chapter 3 Netty5.x【第六讲】 -Netty5 案例
- Netty 快速入门系列 - Chapter 6 自定义数据协议【第十三讲】 通过大端序列方法将4个字节int转成 byte数组
- Netty 快速入门系列 - Chapter 1 传统OIO与NIO - NIO 【第二讲】
- Netty 快速入门系列 - Chapter 7 数据包协议【第十九讲】解决方案-粘包分包原理
- 零元学Expression Blend 4 - Chapter 2 入门界面简介
- Netty 快速入门系列 - Chapter 6 自定义数据协议【第十四讲】ByteBuffer 和 ChannelBuffers
- 算法竞赛入门经典chapter4:4-1孪生素数
- Chapter2~快速入门