WinMain函数
int WINAPI WinMain (
_In_ HINSTANCE hInstance,
_In_opt_ HINSTANCE hPrevInstance,
_In_ LPSTR lpCmdLine,
_In_ int nShowCmd
);
winMain函数是windows函数的入口点函数,WINAPI _stdcall,表示一种调用的约定,让编译器知道以windows兼容的方式下产生机器指令.
#include <Windows.h>
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
MessageBox( NULL, L"First blood! 你好,Visual Studio!", L" 消息窗口", 0 );
return 0;
}
确保WinMain函数具有WINAP的前缀;
WinMain的参数,第一个参数:HINSTANCE hInstance 表示该程序当前运行的实列句柄,hInstance 其实就是一个数值,第二个参数HINSTANCE hPrevInstance:表示当前实例的前一个实例的句柄,第三个参数LPSTR lpCmdLine:以空终止的字符串,指定传递给运用程序的命令行参数,第四个参数int nCmdShow:指定程序窗口应该如何显示,最大化,最小化,还是隐藏等;
MessageBox 函数
MessageBoxA(
_In_opt_ HWND hWnd,
_In_opt_ LPCSTR lpText,
_In_opt_ LPCSTR lpCaption,
_In_ UINT uType);
MessageBox( NULL, L"First blood! 你好,Visual Studio!", L" 消息窗口", 0 );
MessageBox它用于显示应该消息框,通过一些参数来设置这个消息框的样式。
第一个参数_In_opt_ HWND hWnd:显示消息框所属的窗口和句柄;
第二个参数_In_opt_ LPCSTR lpText:是以NULL结尾的字符串,表示所要显示消息的内容
第三个参数_In_opt_ LPCSTR lpCaption:是以NULL结尾的字符串,在其中填充消息框的标题的内容;
第四个参数 In UINT uType:显示窗口需要的样式;
playsound函数
PlaySoundW(
_In_opt_ LPCWSTR pszSound,
_In_opt_ HMODULE hmod,
_In_ DWORD fdwSound
);
PlaySound(L"FirstBlood.wav", NULL, SND_FILENAME | SND_ASYNC); //播放音效
第一个参数 LPCWSTR pszSound:指定要播放的声音文件,若是NULL,会把当前播放的声音停掉;
第二个参数 HMODULE hmod:包含第一个参数中指定的声音文件作为资源的可执行文件的句柄
第三个参数 DWORD fdwSound:控制声音播放的标志;
句柄
在windows应用程序中,窗口是通过窗口句柄(HWND)标识的,对某个窗口进行操作,就要得到该句柄,在windows程序中,有各种资源,窗口,图标等,系统创建这些资源会为分配内存,返回标识这些资源的标识号,这些标识号就是句柄。
消息与消息队列
消息的表示形式 MSG结构体
typedef struct tagMSG {
HWND hwnd; //指定消息所属的窗口
UINT message; //指定消息的标识符
WPARAM wParam; //指定此msg的附加信息
LPARAM lParam; //指定此msg的附加信息
DWORD time; //指定投递到消息队列的时间
POINT pt; //指定投递到消息队列中时鼠标的当前位置
#ifdef _MAC
DWORD lPrivate;
#endif
} MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
第一个参数 HWND hwnd:指定消息所属的窗口,一个消息都是与某个窗口相关联的;
第二个参数 UINT message:指定消息的标识符&#x