Windows编程学习记录(三)

1. WinMain()

int WINAPI WinMain(HINSTANCE hInstance,
 HINSTANCE hPrevInstance,
 PSTR szCmdLine,
 int iCmdShow);

hinstance:应用程序当前实例的句柄。

hPrevlnstance:应用程序的先前实例的句柄。对于同一个程序打开两次,出现两个窗口第一次打开的窗口就是先前实例的窗口。对于一个32位程序,该参数总为NULL

如果需要检测另外一个实例是否已经存在,则使用CreateMutex函数创建一个独一无二的名字。即使互斥名已经存在,CreateMutex函数也是成功的,但是GetLastError函数将返回 ERROR_ALREADY_EXISTS,这就表明应用程序有另外一个实例存在,因为它首先创建了互斥名。

lpCmdLine:指向应用程序命令行的字符串的指针,不包括执行文件名。

iCmdShow:指明窗口如何显示。

 

2. 窗口创建过程

窗口类结构赋值(WNDCLASS) -> 注册窗口类(RegisterClass) -> 创建窗口(CreateWindow) -> 显示窗口(ShowWindow) -> 更新窗口(UpdateWindow) -> 消息循环(GetMessage -> TranslateMessage ->DispatchMessage)

 

3.WNDCLASS

 

微软文档:https://docs.microsoft.com/en-us/previous-versions/aa925944(v=msdn.10)

style指定窗口类型,可以使用按位或操作符组合起来
lpfnWndProc指定窗口过程(必须是回调函数)
cbClsExtra预留的额外空间,一般为 0
cbWndExtra预留的额外空间,一般为 0
hInstance应用程序的实例句柄
hIcon为所有基于该窗口类的窗口设定一个图标
hCursor为所有基于该窗口类的窗口设定一个鼠标指针
hbrBackground指定窗口背景色
lpszMenuName指定窗口菜单
lpszClassName指定窗口类名

应该注意的是第二个成员,它确定了处理窗口消息的窗口过程 。

 

4.RegisterClass, CreateWindow, ShowWindow, UpdateWindow

https://fishc.com.cn/forum.php?mod=forumdisplay&fid=255&filter=typeid&typeid=420

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值