首页 新闻 会员 周边

BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)这个函数干什么的。

0
悬赏园豆:50 [已解决问题] 解决于 2022-07-19 16:03

百度收费,看看这里能不能问到。学习Win32的时候视频里的代码运行不出来,感觉是
HWND
WINAPI
CreateWindowExW(
In DWORD dwExStyle,
In_opt LPCWSTR lpClassName,
In_opt LPCWSTR lpWindowName,
In DWORD dwStyle,
In int X,
In int Y,
In int nWidth,
In int nHeight,
In_opt HWND hWndParent,
In_opt HMENU hMenu,
In_opt HINSTANCE hInstance,
In_opt LPVOID lpParam);
这个函数不存在运行不出来,看系统自带的代码注册完窗口后是
if (!InitInstance (hInstance, nCmdShow))
{
return FALSE;
}
HACCEL hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WINDOWSPROJECT2));
这两个函数,想知道这两个函数是在干什么。

才出昆仑便不清的主页 才出昆仑便不清 | 初学一级 | 园豆:59
提问于:2022-07-18 14:34
< >
分享
最佳答案
1

我没记错的话InitInstance是自己生成的函数,自己看看,应该包含注册窗体类相关操作。LoadAccelerators是 API ,作用是加载加速键,类似快捷键,不过我没用过,所以没深究过。

收获园豆:50
寂静的羽夏 | 老鸟四级 |园豆:2062 | 2022-07-18 17:42

我发现是系统自己写的,作用是创建窗口,也发现了回调函数不写才会报错,CreateWindow这个函数能用。不过用visual studio2019 新建一个空项目然后用main代替入口函数不知道为什么运行出来是黑框,用窗口应用程序新建的项目用WinMain的入口函数就能运行出窗口,有什么讲究吗?

才出昆仑便不清 | 园豆:59 (初学一级) | 2022-07-19 01:39

还有,这园豆要怎么给啊。

才出昆仑便不清 | 园豆:59 (初学一级) | 2022-07-19 01:41

@才出昆仑便不清: 回调是窗口函数回调,是必须写的,详情请学习 Win 的消息机制。main函数是给控制台程序看的,WinMainWin上非控制台的普通程序入口,虽然作用和main一样。当然我也可以通过WinMain来创建一个控制台(所谓的黑框)。如果你不创建窗体并显示,WinMain也不会出现窗体。同理main也可以通过 API 创建窗体并显示,不过黑框隐藏不了。

寂静的羽夏 | 园豆:2062 (老鸟四级) | 2022-07-19 08:53

@才出昆仑便不清: 豆要给的话需要结贴,点击结贴,选中最佳答案,输入数目,最后确认结贴。

寂静的羽夏 | 园豆:2062 (老鸟四级) | 2022-07-19 08:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册