您的位置:首页 > 编程语言 > C语言/C++

【Chapter 1】入门

2013-11-09 09:26 351 查看
刚写了一半的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 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相同)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ gdi windows 游戏 界面