刚写了一半的blog
结果不小心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 CALLBACK 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;
(4)窗口过程的作用:就是对各种用户动作(或者系统事件)进行处理。
接下来会用实例来说明啦~
早起好精神好开心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相同)。